{ "cells": [ { "cell_type": "raw", "metadata": { "collapsed": true, "pycharm": { "name": "#%% raw\n" } }, "source": [ "Code provided under BSD 3-Clause license, all other content under a Creative Commons Attribution license, CC-BY 4.0. (c) 2022 Francesco Mario Antonio Mitrotta." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } }, "source": [ "# Nonlinear Buckling Analysis of an Imperfect Euler's Column\n", "\n", "***\n", "\n", "In our [last notebook](06_Verification_of_SOL_106_Nonlinear_Buckling_Method.ipynb) we observed that a box beam with a rigid tip section under a concentrated bending load does not encounter any neutral equilibrium point along its natural equilibrium path, and that it always stays in a stable equilibrium. Initially, we found that SOL 106's nonlinear buckling method predicted an increasingly larger buckling load as the applied load was increased. We then tried to explain this result supposing the presence of a broken supercritical pitchfork and we verified that the tangent stiffness matrix was indeed always positive definite for the investigated load range.\n", "\n", "In this notebook we want to test whether the same behavior can be observed for an imperfect Euler's column, that is to say an Euler's column with a slight eccentricity in the applied compression load. For this configuration we know that the equilibrium diagram consists in a broken supercritical pitchfork, where on the natural equilibrium path the structure is always stable and no critical point is present.\n", "\n", "* [Setup of the numerical model](#numerical-model)\n", "* [Nonlinear buckling method verification](#verification)\n", "* [Conclusion](#conclusion)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Setup of the numerical model \n", "\n", "***\n", "\n", "We use the same model used in our notebook on [Euler's column supercritical pitchfork bifurcation](02_Supercritical_Pitchfork_Bifurcation_Euler_Column.ipynb), that is to say a pin-ended column loaded in compression and modelled with beam elements. To break the symmetry of the problem we are going to add a small transversal load at the center of the column, as shown in the illustration below.\n", "\n", "![Euler's column under combined compression and transversal load.](resources/02_Subcase2.svg \"Euler's column under combined compression and transversal load.\")\n", "\n", "Let's create a base bdf input with the function `create_base_bdf` from the `column_utils` module and define the transversal force at the center of the column. The compression force is defined by the function `create_base_bdf` as a unit force, so that we can easily scale it later on, while we define the transversal force to be 1/100 of the linear bucklig load." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "subcase=0 already exists...skipping\n" ] }, { "data": { "text/plain": [ "FORCE 5 211 905.78 0. 1. 0." ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from resources import column_utils\n", "import numpy as np\n", "from resources import pynastran_utils\n", "\n", "# Create base bdf input\n", "E = 207000. # Young's modulus # [MPa]\n", "nu = 0.3 # Poission's ratio\n", "rho = 7.8e-4 # density [tons/mm^3]\n", "d = 20 # diameter [mm]\n", "l = 420 # length [mm]\n", "no_elements = 420 # number of beam elements\n", "bdf_input = column_utils.create_base_bdf(young_modulus=E, poisson_ratio=nu, density=rho, diameter=d, length=l,\n", " no_elements=no_elements)\n", "\n", "# Define transverse force\n", "compression_force_set_id = list(bdf_input.loads.keys())[0] # find set identification number of compression force\n", "transverse_force_set_id = compression_force_set_id + 1 # define set idenfitication number of transverse force\n", "central_node_id = int(no_elements/2 + 1) # find id of central node\n", "sol_105_buckling_load = 90578. # value found in first notebook [N]\n", "transverse_force_magnitude = sol_105_buckling_load/100 # [N]\n", "transverse_force_direction = [0., 1., 0.]\n", "bdf_input.add_force(sid=transverse_force_set_id, node=central_node_id, mag=transverse_force_magnitude,\n", " xyz=transverse_force_direction) # add FORCE card to bdf input" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Finally, we set up SOL 106 with the arc-length method and define the parameters for the nonlinear buckling method and the calculation of the lowest eigenvalue of the tangent stiffness matrix." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "import os # import os module\n", "\n", "pynastran_utils.set_up_arc_length_method(bdf=bdf_input, ninc=100, max_iter=25, conv='PUV', eps_p=1e-3, eps_u=1e-3,\n", " max_bisect=10, minalr=.01, maxalr=1.01, desiter=5, maxinc=1000) # use MAXALR=1.01 to facilitate convergence\n", "bdf_input.add_param('BUCKLE', [2]) # request nonlinear buckling method\n", "eigrl_set_id = transverse_force_set_id + 1 # set identification number of EIGRL card\n", "bdf_input.add_eigrl(sid=eigrl_set_id, v1=0., nd=1) # calculate only the first positive eigenvalue with the Lanczos method\n", "bdf_input.case_control_deck.subcases[0].add_integer_type('METHOD', eigrl_set_id) # add EIGRL card id to case control deck\n", "bdf_input.executive_control_lines[1:1] = [\n", " 'include \\'' + os.path.join(os.pardir, os.pardir, 'resources', 'kllrh_eigenvalues.dmap') + '\\''] # include DMAP sequence" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Nonlinear buckling method verification \n", "\n", "***\n", "\n", "Analogously to our [last notebook](07_Nonlinear_Buckling_Analysis_of_an_Imperfect_Euler_Column.ipynb), we want to verify whether we are able to obtain the same buckling load predicted by SOL 105 with SOL 106's nonlinear buckling method for an applied load $P_x/P_\\text{SOL 105}<1$. We also want to explore the results of the nonlinear buckling method for $P_x/P_\\text{SOL 105}\\geq1$ and for this reason we are going to define several subcases with an increasing compression load and a constant transversal force.\n", "\n", "Let's define 11 compression load magnitudes equally spaced between 0 and twice the linear buckling load, discarding the load case with null magnitude and keeping the other 10." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Applied compression loads [N]: [ 18116. 36231. 54347. 72462. 90578. 108694. 126809. 144925. 163040.\n", " 181156.]\n" ] } ], "source": [ "compression_load_magnitudes = np.linspace(0, sol_105_buckling_load*2, 11)[1:]\n", "np.set_printoptions(precision=0, suppress=True)\n", "print(f\"Applied compression loads [N]: {compression_load_magnitudes}\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "For each compression load magnitude we add a `LOAD` card to the bdf input to create a load set combining the compression and the transversal loads and we create the corresponding subcase." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "for i, scale_factor in enumerate(compression_load_magnitudes):\n", " load_set_id = 11 + i\n", " bdf_input.add_load(sid=load_set_id, scale=1., scale_factors=[scale_factor, 1.], load_ids=[compression_force_set_id,\n", " transverse_force_set_id])\n", " pynastran_utils.create_static_load_subcase(bdf=bdf_input, subcase_id=i + 1, load_set_id=load_set_id)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We define the name of the analysis folder and we run our analysis." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nastran job nonlinear_buckling_verification.bdf completed\n", "Wall time: 304.0 s\n" ] } ], "source": [ "# Define name of analysis directory\n", "analysis_directory_name = '07_Verification_of_SOL_106_Nonlinear_Buckling_Method_for_the_Imperfect_Euler_Column'\n", "analysis_directory_path = os.path.join(os.getcwd(), 'analyses', analysis_directory_name)\n", "\n", "# Run analysis\n", "input_name = 'nonlinear_buckling_verification'\n", "pynastran_utils.run_analysis(directory_path=analysis_directory_path, bdf=bdf_input, filename=input_name,\n", " run_flag=False)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let's plot the equilibrium diagram of the structure to visualize the broken supercritical pitchfork. We assess the equilibrium diagram plotting the applied compression load against the rotation $\\theta$ at the pinned node on the left." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArUAAAIHCAYAAACBoqQ/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAABJ0AAASdAHeZh94AABiWElEQVR4nO3de1xVZd7///cGlNMODygaaqApaYpaGZ7KMw2ajmi3aVPdZdbco02NfUttsjx3sLN399jkqMGMZY2ZeTtqM55SMxUzm1vNLDynEQIqbg7C3qzfH/6gthxkw16wF7yej4cPh7Wua61rf6Dx7eW1rmUzDMMQAAAAYGF+tT0AAAAAoLoItQAAALA8Qi0AAAAsj1ALAAAAyyPUAgAAwPIItQAAALA8Qi0AAAAsj1ALAAAAyyPUAgAAwPICansAddH58+e1detWtWnTRoGBgbU9HAAAAEu5dOmSTp06pf79+6tx48aV6kOoNcHWrVuVmJhY28MAAACwtE8++UQjR46sVFtCrQnatGkj6fI3on379qbey+FwKCUlRXFxcbLb7abeq76htuaivuahtuahtuahtuayWn1TU1OVmJhYkqkqg1BrguIlB+3bt1fnzp1NvVd2drbS0tLUqVMnhYWFmXqv+obamov6mofamofamofamsuq9fVkGScPigEAAMDyCLUAAACwPEItAAAALI9QCwAAAMsj1AIAAMDyCLUAAACwPEItAAAALI9QCwAAAMsj1AIAAMDyCLUAAACwPEItAAAALC+gtgcAAAAA31boKtKXx8/pQl6BGgU3VI/oJmrg71tzo741mits3rxZDz30kDp27KjQ0FC1atVKI0eO1N69eyvVPz09XQ8++KCaNWumkJAQ9e7dW5s2bSqz7caNG9W7d2+FhISoWbNmevDBB5Wenu7NjwMAAGApha4i/fem79X7xU265y+79LtlX+mev+xS7xc36b83fa9CV1FtD7GET4fat99+W8ePH9cf/vAHrVu3TgsWLFB6erp69eqlzZs3V9j30qVLGjx4sDZt2qQFCxZo9erVatGihRISErR161a3tlu3btXQoUPVokULrV69WgsWLNDGjRs1ePBgXbp0ycyPCAAA4JMKXUV6OPlLvb7hO2U4CtzOZTgK9PqG7/TIX7/0mWDr08sP/vSnPykiIsLtWEJCgtq3b68XXnhBgwYNKrfvkiVLdODAAX3xxRfq3bu3JGngwIHq1q2bpk6dqt27d5e0nTJlimJiYvTRRx8pIOBySdq2bau+fftq6dKlmjhxogmfDgAAwHe9seE7bf3ubIVtPjt8Vn/akqrJQ2JqaFTl8+mZ2isDrSTZ7XbdeOONOnXqVIV9V61apRtuuKEk0EpSQECA7rvvPqWkpOj06dOSpNOnT2vPnj26//77SwKtJPXp00cxMTFatWqVlz4NAACANWQ48rXwsyOVarto21GfmK316Znasly4cEFfffVVhbO0knTgwAHdfvvtpY537dpVknTw4EG1atVKBw4ccDt+ZdsdO3ZUeJ/09HSdPev+t5jU1FRJksPhUHZ2doX9qysnJ8ftd3gPtTUX9TUPtTUPtTUPtTWXJ/XNLXDqttd3VvrauQUubT5wSr3bNqny+K7kcDg87mO5UPvoo48qJydH06dPr7BdZmammjZtWup48bHMzEy338trW3y+PAsXLtTs2bPLPJeSkqK0tLQK+3tLSkpKjdynPqK25qK+5qG25qG25qG25rpafQuc0nN7/eUssnl03U+2/1v5x43qDM3NyZMnPe5jqVD73HPP6b333tNbb72lW2655artbbbyvyFXniuvbUXXkKRJkyZpzJgxbsdSU1OVmJiouLg4derU6arjrI6cnBylpKQoLi5OoaGhpt6rvqG25qK+5qG25qG25qG25qpMfQtdRUp850vlF3n+kHzbtm018Pao6g6zxKFDhzzuY5lQO3v2bM2bN0/PP/+8fv/731+1fXh4eJmzrFlZWZJ+npkNDw+XpHLbljWD+0sRERFlrv2VLq//DQsLu+pYvSE0NLTG7lXfUFtzUV/zUFvzUFvzUFtzVVTflz/9VqfOV23Xp94xLb36fbPb7R738ekHxYrNnj1bs2bN0qxZs/TMM89Uqk9sbKz2799f6njxsS5durj9Xl7b4vMAAAB11YW8gko/GHalBv429WoX7uURec7nQ+3cuXM1a9YsPfvss5o5c2al+40aNUrffvut29ZdTqdTy5YtU8+ePRUZGSlJatWqleLi4rRs2TK5XK6Strt27dLhw4c1evRo730YAAAAH5Nb4FTvF8p+OVVl/Pb2dj7xdrHaH0EFXnvtNc2YMUMJCQm68847tWvXLrdfxSZMmKCAgACdOHGi5NhDDz2kzp07a8yYMXr//fe1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2WzKyMioUqjt0qWLevToUWGbKVOmKCYmRh999JECAi6XpG3bturbt6+WLl2qiRMnVmn8AADUR4WuIr3+r+/0561H5MWls6ydRYV8+ieieLmAmU6fPq09e/bo/vvvLwm0ktSnTx/FxMRo1apVpt4fAIC65EJegW57aZPe9nKgbREWqH0z4/XkHTcQaFEmn56p9Ybhw4fr7NmzatSokQYMGKA5c+aoS5cuJecPHDggSeratWupvl27dtWOHTsqvH56errOnnV/+0lqaqokyeFwKDs7u7ofoUI5OTluv8N7qK25qK95qK15qG35cgucmrP+e607mOH1az/cu7Um9ouSrTBf2YX5Xr9+fWC1n12Hw+Fxnzobalu2bKnp06erV69eCgsL0/79+/XSSy+pV69e2rFjh7p16ybp8rpdSWratGmpazRt2rTkfHkWLlyo2bNnl3kuJSWlzIfSzJCSklIj96mPqK25qK95qK15qO3PXEXSulM2bTzjJ2+9EaxYQz9Dc25yKVjH9fm24169dn1llZ/dkydPetynzobahIQEJSQklHzdr18/3XnnnYqNjdWMGTO0evVqt/blLXO42vKHSZMmacyYMW7HUlNTlZiYqLi4OHXq1KmKn6BycnJylJKSori4OIWGhpp6r/qG2pqL+pqH2pqH2rrLzivQqL98pbOOQq9fu02TQK2YcDMvUvASq/3sHjp0yOM+9eonJTo6Wrfddpt27dpVcqx4J4SyZmSzsrLKnMH9pYiICEVERJR5zm63KywsrBojrrzQ0NAau1d9Q23NRX3NQ23NU99rm1vg1B8//j+t/vpHr1870N+m3/a/nofBTGKVn1273e5xn3oVaiXJMAz5+f38H0nx+tr9+/dr2LBhbm3379/vtv4WAID6zKxdDSQpMMCm/2zn1O9G9VN4k8Zevjrqg3r1V6Bjx45px44d6tWrV8mxVq1aKS4uTsuWLZPL5So5vmvXLh0+fFijR4+ujaECAOBTzNrVQJKiwoO1dXIvdQk3mJ1Flfn8TO369euVk5OjixcvSpK++eYbffTRR5KkYcOGKSQkRBMmTFBycrKOHDmiqKgoSdKQIUPUr18/de3ateRBsZdfflk2m01z5851u8f8+fMVHx+vMWPGaNKkSUpPT9fTTz+tLl26aPz48TX7gQEA8CFmLjWQLr8VbHJ8jPJyPH/aHfgl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vlq2bKnp06erXbt2OnXqlF544QXdfPPN2rVrlzp37uzWvl27dnrvvffcjjVu3NiMj+QVnu1S63l7AAAAq/HZULtu3Tpt2LChJMhK0sCBA3XixAlNmTJFY8eOlb+/f5l916xZo4iICLdjgwYNUnR0tN544w0tXrzY7VxwcLB69eplzgcxwaVCl6ntAQAArMZnlx+sWrVKdrtdY8aMcTs+fvx4nTlzRrt37y6375WBVpIiIyPVunVrnTp1yutjrWlFHk69etoeAADAanx2pvbAgQPq1KmTAgLch9i1a9eS83369Kn09Y4ePaoTJ04oMTGx1LkjR46oadOmys7OVlRUlMaNG6dnn31WwcHBV71uenq6zp4963YsNTVV0uU1wdnZ2ZUeY2V5+ioFm2TKOOq6nJwct9/hXdTXPNTWPNTWPNTWXFarr8Ph8LiPz4bazMxMtWvXrtTxpk2blpyvLKfTqQkTJshut+uJJ55wO3fbbbdp7Nix6tixo/Ly8rR+/Xq9/PLL+vzzz7Vlyxb5+VU8mb1w4ULNnj27zHMpKSlKS0ur9Dgrq+iSTVLZSy/Kbl+gLVu2eH0c9UVKSkptD6FOo77mobbmobbmobbmskp9T5486XEfnw21UsWvd63sq18Nw9CECRO0fft2rVy5Um3atHE7P2/ePLevhw0bpujoaD311FNavXq1Ro0aVeH1J02aVGqJRGpqqhITExUXF6dOnTpVapyeeHH/TsnhrHT7oJBADRzY2+vjqOtycnKUkpKiuLg4hYaG1vZw6hzqax5qax5qax5qay6r1ffQoUMe9/HZUBseHl7mbGxWVpakn2dsK2IYhh5++GEtW7ZMycnJGjlyZKXufd999+mpp57Srl27rhpqIyIiylzDK0l2u11hYWGVuqcnCj1cJFtYZJgyjvoiNDSU+pmI+pqH2pqH2pqH2prLKvW12+0e9/HZB8ViY2N16NAhOZ3uM5L79++XJHXp0qXC/sWB9t1339XixYt13333eTyGqy09qC08KAYAAODON1ObpFGjRsnhcGjlypVux5OTkxUZGamePXuW29cwDD3yyCN699139c4772j8+PEe3Ts5OVmSfHabr0quvKhyewAAAKvx2eUHQ4cOVXx8vCZOnKjs7Gy1b99ey5cv16effqply5aV7FE7YcIEJScn68iRI4qKipIkPf7441qyZIke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kpKS3K6RlJQkm82mxMTEGhq1tRQH2qNHj+pf//qXbrrppjLb1Zn61tZeYqie+Ph4o0mTJsaiRYuMzZs3G4888oghyVi2bFltD80yXn31VUOSkZCQYOzcubPUr2KHDh0y7Ha70a9fP2PdunXGxx9/bHTp0oVN1qugrH1qqa/nRowYYQQGBhpz5841NmzYYLz44otGUFCQMXz48JI21LVqVq9ebdhsNqNXr14lL194/vnnDbvdbtx4443GpUuXDMOgvpWxbt06Y8WKFcbSpUsNScaYMWOMFStWGCtWrDBycnIMw/CsjsUvB3jmmWeMzz77zHjllVeMwMBAS70cwJuuVt/c3Fzj1ltvNWw2m7FgwYJSf8ZduRdzXagvodaiLl68aDz++ONGy5YtjYYNGxpdu3Y1li9fXtvDspT+/fsbksr99UtffvmlMXjwYCMkJMQICwszEhMTS/0fAq6urFBrGNTXU7m5uca0adOMNm3aGAEBAcZ1111n/PGPfzTy8/Pd2lHXqtm8ebNxxx13GC1btjSCg4ONmJgY48knnyy1kT31rVhUVFS5//967Nixknae1HHBggVGTEyM0bBhQ+O6664zZs6caRQUFNTQJ/ItV6vvsWPHKvwz7oEHHih1TavX12YY//9CLAAAAMCiWFMLAAAAyyPUAgAAwPIItQAAALA8Qi0AAAAsj1ALAAAAyyPUAgAAwPIItQAAALA8Qi0AAAAsj1ALAAAAyyPUAgAAwPIItQAAALA8Qi0A+LDs7Gw99dRTatOmjYKCghQXF6edO3d67fqzZs2SzWbz2vUAoLYQagHAR2VkZKhv377aunWr3nzzTa1atUoul0vDhw/XuXPnant4AOBTAmp7AACAsj344IMyDENbt25VSEiIJKlZs2aKi4vT6tWr9eCDD9buAAHAhzBTCwA+aPPmzVq7dq1ef/31kkArSe3atZMkHT161ONrrl27Vt27d1dgYKDatm2rV199tdy233//vX7zm98oIiJCgYGB6tSpk/70pz+Vard69Wp17dpVgYGBateunRYsWMCSBgC1gplaAPBBixYtUnR0tAYOHCin01lyPDs7W5LUoEEDj663adMmjRw5Ur1799YHH3wgl8ull19+WT/99FOptt9884369Omj6667Tq+99ppatmypf/7zn3r88ceVkZGhmTNnSpI+/fRTjR49Wv369dOHH34op9OpV199tcxrAoDZbIZhGLU9CADAz4qKihQeHq7z58+X2+Zvf/ub7rvvvkpfs1evXjp16pSOHDmioKAgSdLFixcVHR2trKws/fKPgoSEBB08eFAHDx5UWFhYyfHHHntMixcv1pkzZ9SkSRPFxcUpLS1NqampatiwoSTJ4XAoOjpamZmZ4o8XADWJ5QcA4GMOHz6s8+fPa+7cudqzZ4/brwceeECSFBcXV+nr5eTkaM+ePRo9enRJoJWka665RiNGjHBrm5+fr02bNmnUqFEKCQmR0+ks+TVs2DDl5+dr165dysnJ0ZdffqnExMSSQCtJdru91DUBoCaw/AAAfMzx48clST179lSPHj3czh04cEDXX3+9YmJiKn29c+fOqaioSC1btix17spjmZmZcjqdeuutt/TWW2+Veb2MjAydO3dOhmGoRYsWpc6XdQwAzEaoBQAfU1hYKEny9/d3O/71119r7969mj9/vkfXa9KkiWw2m9LS0kqdu/JYkyZN5O/vr/vvv1+PPvpomddr27atgoKCZLPZylw/W9Z9AMBsrKkFAB9z4MABxcbG6s0339Qf/vAHSZLT6dSgQYP0ww8/6MCBA247IlSGJ2tq4+PjdfbsWaWkpLgtLbgSa2oB+BJCLQD4oB49eujEiRN666231KhRI7322mv6+uuvtWnTJnXr1s2trc1mU//+/fXZZ5+Ve70NGzYoISFBffr00ZNPPimXy6X58+crLS1Np06dcgug33zzjW677TZ16NBBEydOVHR0tC5evKjU1FStWbNGmzdvlnR594M777xT/fr10x/+8Ae5XC698sorSktL08mTJ1VUVGRKbQCgLIRaAPBBJ06c0H/9139p+/btCgoK0tChQzVv3jxFR0e7tXM4HLrmmms0btw4LV++vMJrrlmzRs8++6y+/fZbtWzZUpMmTVJeXp5mz55dalb1+PHjmjt3rv75z38qPT1djRs3VocOHTRs2DBNnz69pN0nn3yiGTNm6PDhwyXXPHPmjP72t78pKyvLa/UAgKsh1AKAha1bt07Dhw/Xv//9b8XGxtb2cFRYWKju3burVatW+te//lXbwwFQj/CgGABY2JYtWzRu3LhaC7QTJkxQfHy8rr32WqWlpenPf/6zDh06pAULFtTKeADUX8zUAgCq7O6779YXX3yhs2fPqkGDBrr55pv1zDPPKCEhobaHBqCeIdQCAADA8nijGAAAACyPUAsAAADLI9QCAADA8gi1AAAAsDxCLQAAACyPUAsAAADLI9QCAADA8gi1AAAAsDxCLQAAACyPUAsAAADLI9QCAADA8gi1AAAAsLz/D1d9oaxmEVZ/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pyNastran.op2.op2 import read_op2 # function to read op2 file\n", "import matplotlib.pyplot as plt # plotting library\n", "\n", "# Read op2 file and read load and displacement history\n", "PINNED_NODE_ID = 1\n", "op2_filepath = os.path.join(analysis_directory_path, input_name + '.op2')\n", "sol_106_op2 = read_op2(op2_filename=op2_filepath, debug=None)\n", "steps, loads, displacements = pynastran_utils.read_load_displacement_history_from_op2(\n", " op2=sol_106_op2, node_ids=[PINNED_NODE_ID])\n", "\n", "# Collect loads and displacements of interest\n", "load_component_index = 0 # select y-axis component of the load\n", "displacement_component_index = 5 # select rotation about the z-axis\n", "applied_load_history = np.concatenate([loads[subcase_id][:,load_component_index] for subcase_id in loads])\n", "rotation_history = np.concatenate(\n", " [displacements[PINNED_NODE_ID][subcase_id][:,displacement_component_index] for subcase_id in loads])\n", "\n", "# Plot applied compression load vs rotation at node 1\n", "plt.rcParams['figure.dpi'] = 120 # set default dpi of figures\n", "_, ax = plt.subplots()\n", "ax.plot(np.rad2deg(rotation_history), -applied_load_history/sol_105_buckling_load, 'o') # we add a minus sign to have a positive force in the plot\n", "plt.xlabel('$\\\\theta$, deg')\n", "plt.ylabel('$P_x/P_\\mathrm{SOL\\,105}$')\n", "plt.grid()\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We know that the column is always stable along the natural path of the broken supercritical pitchfork. In order to verify the positive definiteness of the tangent stiffness matrix $\\boldsymbol{K}_T$, we read the lowest eigenvalue for each converged iteration from the f06 file and we plot it against the applied loads." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "image/png": "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7XZJ0pgxYzRu3Dj961//0vHjxzVv3jx9+OGHevjhhz36Oa+88kqNHj1affr0Oe+1Rx55RNWrV9fBgwf1j3/8Q3/4wx/crh2dPn26cnNzlZubq6VLl3q0XwAoQdc5gLCzfv16RUdHKysrSzabTQ6HQ1deeaUqV67s9r5BgwYpPz9fb775pgzD0C233KKrrrpKkyZN0po1a7Rr167zEs2ybPvHH39UhQoVznSqO51O9e3bV5J09OhRjR07Vu+//746duwoSWrevLneeecdtWrVSk888YTq169fpp+zZJvz5s1zez43N1dz587V9u3bFRsbq9///vdq3ry55s2bp/79+3sQSQC4OM5oAgg769evV7NmzdSmTRtde+21atas2XlJpiQNHz5cs2bN0q5du/TUU0/p5MmTZ9bLnD17tpKTk9WkSROPt52cnCyXy6UHH3xQCxcudFtbc9WqVSooKNBNN93kNqZFixaqXbu2MjMzvf75t27dKqfTqauuuurMc02bNtW333575v+HDh2qqlWrqkuXLmcuBwAAT5FoAggrx44d0/bt29W6detLvrdGjRq6//779fvf/14LFizQBx98cKa8PXv27PPOZpZ12wkJCcrKytKpU6d03333qWrVqrrnnnt0/PhxHT58WFWqVDmzn3NVq1ZNhw4d8uCnLV1ubq7i4+PdnouPj1dubq4k6cUXX9RPP/2kXbt26eabb9aNN96oo0ePer1fAOGHRBNAWFm/fr0MwyhToimdPpO4adMmTZkyRZdddpkkaePGjdq2bVupZfOybrtJkyb697//rX379mnlypVauXKlnn/+eVWuXFmHDh1ya/wpsX//flWpUqVM874Yp9N53h2KcnJy5HQ6JUkpKSlyOp2KiYnR448/rqpVq2rlypVe7xdA+CHRBBBWSsrArVq1uuR7v/rqK40YMUK33Xab3n777TPPz549W7Vr1z4vofRk2+dq3bq1+vXrp82bN6tdu3aKiorSp59+6vaejRs3aufOnUpNTfVo26WpV6+ecnNz9fPPP595bvPmzWrcuHGp7//teqAAUFYcPQCElb/+9a8yDEMtW7a86Pt2796tW265Rf/+9781adIk/ec//9H27dsllV4292Tb33//vSZMmKA9e/ZIOt0c9MknnyglJUUVK1bU8OHDNXDgQGVlZamwsFBff/217rnnHvXv39+tEcjlcunkyZNnHr89C1pYWHjm+XP/2+l0qnfv3kpPT1d+fr7++9//auPGjfr973+vo0ePKiMjQ6dOnZLL5dKkSZO0b98+tWvXrkzxBQA3BgDATU5OjtGsWTNj+vTpZ54bNGiQcd9991my/Z9//tm49dZbjerVqxuxsbFGzZo1jaFDhxqnTp06855//vOfRr169YwKFSoYtWrVMkaOHGkUFBSceb127dqGJLfHW2+95bafkSNHXvA9Bw4cMG688UYjJibGSEpKMhYtWnTm+datWxtxcXHG5ZdfbqSmphpr16615OcGEH641zkAAAB8gtI5AAAAfIJEEwAAAD5BogkAAACfINEEAACAT5BoAgAAwCdINAEAAOATJJoAAADwCRJNAAAA+ASJJgAAAHyCRBMAAAA+QaIJAAAAnyDRBAAAgE+QaAIAAMAn/g91yDlOZBzAegAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Read the lowest eigenvalue of KLLRH matrices from f06 file\n", "f06_filepath = os.path.join(analysis_directory_path, input_name + '.f06') # path to .f06 file\n", "lowest_eigenvalues = pynastran_utils.read_kllrh_lowest_eigenvalues_from_f06(f06_filepath)\n", "\n", "# Create new figure and plot lowest eigenvalues vs applied loads\n", "_, ax = plt.subplots()\n", "ax.plot(-applied_load_history/sol_105_buckling_load, lowest_eigenvalues[0, :], 'o')\n", "plt.xlabel(\"$P_x/P_\\mathrm{SOL\\,105}$\")\n", "plt.ylabel(\"$\\lambda$, N/mm\")\n", "plt.grid()\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We observe a linear drop of the lowest eigenvalue for $P_x/P_\\text{SOL 105}<1$ until a minimum is reached, then we see an increase up to a local maximum and then another drop. The lowest eigenvalue is always positive and never crosses zero for the investigated load range. As a consequence, we can state that the structure is always stable and never encounters a neutral equilibrium point, as expected.\n", "\n", "Now let's find the nonlinear buckling loads and the critical buckling factors $\\alpha$ predicted by SOL 106 by reading the f06 file and let's plot both against the applied loads." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "image/png": "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bnAU9dixY5LU4Ohrnbi4OMXFxTXY5nQ6G7wFrd1EREQERD/tgFp5h3p5GtTTqRjnbpW6qup94epcDkkxznAN6nkF67I2gNeVedTKPGplni9q5XQ6vT7G0sD61VdfWXk6S6SkpGjHjvqjHnXbevfu7esuAWiFwkLaaFxGgp5eteeC+xmSxmXEE1YBwAstMod17969ys3NVUlJiWJjY5WZmalu3bq1xKUu6pZbbtGUKVP06aefasCAAZKkM2fOaOnSpRowYIC6dOnil34BaH0mZyZq+8HjWvPlUTnkubRV3eMhyXGalJnonw4CQICy9Ff82tpa/eY3v1FycrIef/xx/f3vf9f8+fOVnJys3/72t6qtbfoyLh9++KGWL1+ud999V5L0xRdfaPny5Vq+fLm+++47SdLEiRMVGhqqoqIi93ETJkxQr169NGbMGL322mv65JNPdNttt2n37t168sknm/eEAeAcYSFt9PzYVN03PEkxznCPthhnuO4bnqTnx6YyugoAXrJ0hPWxxx5TXl6etm3bpr59+7q3b9++XWPHjtW8efP0yCOPNOnckydP9giiy5Yt07JlyySdnYqQkJCgmpoa1dTUeCyfFR4ertWrV+v+++/X9OnT9d1336lfv3768MMPdf311zfxmcJq1TW12lJYphOnqtSxfVulJXTmH3UEpLCQNpo+tLsmZSZq/ReHtGHzdv2wfz/mrAJAM1gaWJcsWaKVK1cqJSXFY3u/fv306quvatSoUU0OrIWFhRfdJzs7W9nZ2fW2X3rppVqyZEmTrouWVV1Tq8W5BcrJK/RYwzLWGa6xGfGanJnIP/IISGEhbdQ/vpNc+w31j+/E6xgAmsHSwPrtt9+qV69eDbb16tVL3377rZWXQ4Cru+/62t3F9e4OVHff9e0Hj/MRKgAAQc7SFNC1a1fl5eU12LZx40Z17drVysshwHHfdQAAYIalgXX69Om6/fbb9f7777vnkRqGoffee0933HGH7rnnHisvhwDGfdcBAIBZlk4JmDp1qsrKynTbbbfpzJkziomJUUlJiUJDQ/XQQw9pypQpVl4OAWxLYZlX913fUlimjMTolu8YAACwHcvXYX344Yc1ffp05eXlqbS0VNHR0crIyFDHjh2tvhQC2IlTFw+rzdkf9sNKEACAprI0sBYVFSkkJERXXHGFRowYIZfLpfnz52vR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LrvsMj344IPuVQcAAABgb7YKrLm5uab3TU1N1SeffGJq37vvvlt33313E3sFAAAAf7LdHFYAAADgXARWAAAA2BqBFQAAALZGYAUAAICtEVgBAABgawRWAAAA2BqBFQAAALZGYAUAAICtEVgBAABgawRWAAAA2BqBFQAAALZGYAUAAICtEVgBAABgawRWAAAA2BqBFQAAALZGYAUAAICtEVgBAABgawRWAAAA2BqBFQAAALZGYAUAAICtEVgBAABgawRWAAAA2BqBFQAAALZGYAUAAICtEVgBAABgawRWAAAA2BqBFQAAALZGYAUAAICtNTmwPvHEEzp9+rSVfQEAAADqaXJgXbp0qbp3766XX35ZhmF4tB06dEgvvPBCszsHAAAANDmw7tixQ48++qj+8Ic/qE+fPvr73/+ub775Rl9//bVeeOEF3X333Vb2EwAAAEEqtKkHrlixQvfcc49cLpeOHTumrKwsORwOd/uvf/1rSzoIAACA4NbkEdYHHnhAAwcO1Pr167Vjxw5t375dkyZNUkhIiH7+85/rueees7KfAAAACFJNDqyHDh3Sgw8+qOuuu069evVSnz59tHDhQuXl5Sk3N1ePPPKIlf0EAABAkGpyYO3evbu2b99eb3tqaqr+/Oc/a/Hixc3pFwAAACCpGYF1ypQpmjlzpt544416bYZhqKKiolkdAwAAAKRmfOlq0qRJWrNmjW6//XbNnz9fN998s37wgx+ouLhYzzzzjFJSUqzsJwAAAIJUkwOrJL355pt6+eWXtXDhQj3++OPu9VhjY2O1YMECSzoIAACA4NaswCpJ48eP1/jx43X8+HHt27dPISEh6tWrl9q2bWtF/wAAABDkmh1Y63Tq1ElpaWlWnQ4AAACQ1IwvXQEAAAC+QGAFAACArRFYAQAAYGsEVgAAANgagRUAAAC2RmAFAACArRFYAQAAYGsEVgAAANgagRUAAAC2RmAFAACArRFYAQAAYGsEVgAAANgagRUAAAC2ZrvAevLkSd1///264YYbFBsbK4fDodmzZze477Zt2zRs2DA5nU516tRJo0eP1v79+xvc99lnn1VycrLCw8P1gx/8QHPmzFF1dXULPhMAAABYwXaBtbS0VC+88IIqKyuVlZXV6H5ffvmlMjMzVVVVpTfffFN//etftWfPHv3oRz9ScXGxx77z5s3TPffco9Gj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N7VuDa8tKwTLe1ZTBeN7llWC7X3rkUce0auvvqpnn31WqampF93f7u9XgffrQpCIjo5u8DeVY8eOSWr4t5vzGYahX/3qV1q6dKmys7M1atQoU9e+8847JUmbNm3yosf+Y0WtzpWQkKDrrrvO4/nXffu2set4ew1/sapWH3zwgY4cOaJf/epXpq8daK+r5jJb69by2rJCsLxnWa01v2dZKZjet+bMmaO5c+dq3rx5mjZt2kX3D4T3KwKrTaWkpGjXrl06c+aMx/YdO3ZIknr37n3B4+ve+F9++WW9+OKL7h86bwTKxx/NrVVDDMPweP5156g75/nXaco1/MGqWr300ktq27atxo4d63UfAuV11VwpKSmNvl6kf9e6tby2miuY3rNaQmt9z7JSsLxvzZkzR7Nnz9bs2bP10EMPmTomIN6vWmz9ATTLBx98YEgy/va3v3lsHzFixEWXH6qtrTUmTpxoOBwO44UXXvD62k8++aQhyXjnnXe8PtYfmlOrhuzfv99wOp1GVlaWx/b09HSjd+/eHufLy8szJBmLFy9u+hPwIStqdfjwYSM0NNS47bbbvLp2oL2uzuftcjqLFi0yJBmbNm1yb6uurjZ69eplDBgwwGPf1vDaOpe3tQq296xzWbFMU2t+zzpfU+sVLO9bjz76qCHJePjhh706LhDerwisNjZ8+HCjc+fOxgsvvGCsWbPG+PWvf21IMpYuXereZ8KECUZISIhRWFjo3jZt2jRDkjFhwgQjLy/P48+2bdvc+61fv974j//4D+O5554z/vGPfxh///vfjcmTJxshISHGkCFDjJqaGp8+3+Zoaq2GDh1qzJkzx1ixYoWxevVq47//+7+NLl26GJdccomxY8cOj2usXbvWCA0NNW655RZj1apVxquvvmp07drV6N27t3H69GmfPdfmamqt6jzxxBOGJOMf//hHg+dvTa8rwzgb8pctW2b89a9/NSQZY8aMMZYtW2YsW7bMqKioMAyj4XqdPn3a6NWrl9G1a1fj1VdfNVatWmXccsstRmhoqJGbm+txjdby2mpqrYLxPauptQrG9yzDaHq96gTD+9ZTTz1lSDJGjBhR7+coLy/PvV+gvl8RWG3s5MmTxt13321cdtllRtu2bY0+ffoYr7/+usc+v/zlLw1JxldffeXeFh8fb0hq8E98fLx7v7179xo//vGPjcsvv9wIDw832rVrZ6SkpBjz5s0LuDezptbq3nvvNXr27GlccsklRmhoqNGlSxfjzjvvNHbv3t3gdf7xj38YAwcONNq1a2dERUUZ48aNa3CxZjtraq3qJCUlGQkJCe6FvM/Xml5XhnHhn6e6+jRWryNHjhjjxo0zoqKijHbt2hkDBw40Vq1a1eB1WsNrq6m1Csb3rKbWKhjfswyjeT+HhhEc71vXX399ozU69wP1QH2/chiGYXg9jwAAAADwkcCZRQwAAICgRGAFAACArRFYAQAAYGsEVgAAANgagRUAAAC2RmAFAACArRFYAQAAYGsEVgAAANgagRUAAAC2RmAFAACArRFYAQAAYGsEVgBohg8++EAOh8P9JyQkRPHx8Zo2bZrKy8tNn6empkZxcXF65plnLD83AAS6UH93AAAC2bZt2yRJb731lrp06aLTp09r2bJlWrhwoVwul7Kzs02dZ/369SouLtbo0aMtPzcABDqHYRiGvzsBAIFq9OjR+vjjj3Xy5Em1afPvD6169uypb7/9VqWlpabOM3XqVOXn52vz5s2WnxsAAh1TAgCgGbZu3aqUlBSPQClJkZGRqqioMHUOwzC0YsUK3XrrrZafGwBaAwIrADRRaWmpDhw4oL59+3psLy4u1s6dO9W/f39T59m4caMOHz7sEVitOjcAtAYEVgBooro5pr1799aZM2dUUVGhTz/9VFlZWaqsrNSjjz5q6jzLly9XSkqKunfv7vW5169fr4EDB6pjx46Kjo7WkCFD9NVXX7nPs3DhQl111VVq3769EhISNHv2bNXU1LjbExIS9M9//vOC/fuf//kfXX311QoLC9Ps2bM92oqLi3XjjTcqIiJCSUlJWrVqlbstMzNT7dq1k9PplNPp1JAhQ0zVAwDOR2AFgCbaunWrJOnuu+9WWFiYnE6nBg4cqKqqKn388ccaPHiwqfO8/fbbDU4HuNi5T5w4oVGjRun+++9XWVmZioqKNH36dIWEhEiS5s6dq8cff1z/+7//q5MnT2rlypVavny5Jk2a5NXzvPzyy/Xoo48qKyurXtvUqVN12WWXqbi4WE899ZRuu+02j7m1L774olwul1wul9asWePVdQGgDqsEAEATbdu2Te3atdP69evlcDjUtm1bXX755YqOjvbYb9q0aTp16pReeuklGYahW2+9VVdccYX+8pe/KD8/XwcOHKgXWM2ce8+ePQoPD3evLOB0OnXLLbdIko4fP6758+frb3/7mwYNGiRJ6tu3r5YuXaprrrlGv//973XVVVeZep5151y5cqXHdpfLpXfeeUf79+9Xhw4d9JOf/ER9+/bVypUrNWHCBC8qCQAXxggrADTRtm3b1KdPH/Xv319paWnq06dPvbAqSQ899JCWLVumAwcO6MEHH9Tp06fd662+9dZbSkpKUu/evb0+d1JSkqqqqvSrX/1KH330kcfarHl5eaqurtaNN97ocUy/fv0UHx+v3NzcZj//vXv3yul06oorrnBvS0lJ0eeff+5+/Lvf/U6xsbEaMmSIe5oDAHiLwAoATXDixAnt379fqampF923S5cuGj9+vH7yk5/oww8/1BtvvOH+2P6tt96qN7pq9twdO3bU+vXrVVlZqbvuukuxsbG68847dfLkSZWWliomJsZ9nXNdeumlKikp8eLZNszlcikyMtJjW2RkpFwulyTpj3/8o7766isdOHBAN910k0aOHKnjx483+7oAgg+BFQCaYNu2bTIMw1Rglc6ObH722WdauHChLrnkEknS9u3bVVBQ0OB0ALPn7t27t1555RUdOXJEGzdu1MaNGzVv3jxFR0erpKTE4wtWdb799lvFxMSY6veFOJ3OenfcKi8vl9PplCSlp6fL6XSqffv2+s///E/FxsZq48aNzb4ugOBDYAWAJqj7ePuaa6656L5btmzRzJkzNWbMGC1ZssS9/a233lJ8fHy9YOrNuc+Vmpqq0aNHa+fOncrIyFBYWJjef/99j322b9+uoqIiZWZmenXuhnTv3l0ul0uHDh1yb9u5c6d69erV4P7nrycLAGbx7gEATXDffffJMAxdffXVF9zv4MGDuvXWW/XKK6/oL3/5i958803t379fUsPTAbw595dffqlnnnlG33zzjaSzX8J69913lZ6erk6dOumhhx7SlClTtH79ep05c0b/7//9P915552aMGGCxxeuqqqqdPr0afef80dlz5w5495+7n87nU6NGjVKs2fP1qlTp/Tee+9p+/bt+slPfqLjx49r1apVqqysVFVVlf7yl7/oyJEjysjIMFVfAPBgAABaRHl5udGnTx/jxRdfdG+bNm2acdddd1ly/kOHDhk//elPjcsuu8zo0KGD0bVrV+N3v/udUVlZ6d7n2WefNbp3726Eh4cb3//+941Zs2YZ1dXV7vb4+HhDksefl19+2eM6s2bNanSfo0ePGiNHjjTat29vdOvWzfj444/d21NTU42IiAijc+fORmZmprF582ZLnjeA4OMwDMPwX1wGAAAALowpAQAAALA1AisAAABsjcAKAAAAWyOwAgAAwNYIrAAAALA1AisAAABsjcAKAAAAWyOwAgAAwNYIrAAAALA1AisAAABsjcAKAAAAWyOwAgAAwNYIrAAAALC1/w95uqzHSscojwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Find nonlinear buckling loads and critical buckling factors\n", "nonlinear_buckling_load_vectors, critical_buckling_factors = pynastran_utils.read_nonlinear_buckling_load_from_f06(\n", " f06_filepath=os.path.join(analysis_directory_path, input_name + '.f06'), op2=sol_106_op2) # read buckling loads and critical buckling factors from f06 file\n", "sol_106_buckling_loads = np.linalg.norm(np.sum(nonlinear_buckling_load_vectors[:, :, 0:3], axis=1), axis=1) # calculate the norm of the nonlinear buckling load vector for each subcase\n", "\n", "# Plot nonlinear buckling loads and critical buckling factors against applied loads\n", "_, axs = plt.subplots(nrows=2, ncols=1, sharex='all') # figure with 2 subplots\n", "axs[0].plot(compression_load_magnitudes/sol_105_buckling_load, sol_106_buckling_loads/sol_105_buckling_load, 'o') # buckling loads vs applied loads\n", "axs[1].plot(compression_load_magnitudes/sol_105_buckling_load, critical_buckling_factors, 'o') # critical buckling factors vs applied loads\n", "\n", "# Set plot appearance\n", "axs[0].set_ylabel(\"$P_\\mathrm{SOL\\,106}/P_\\mathrm{SOL\\,105}$\")\n", "axs[0].grid(visible=True)\n", "axs[1].set_ylabel(\"$\\\\alpha$\")\n", "axs[1].grid(visible=True)\n", "axs[1].set_xlabel(\"$P_x/P_\\mathrm{SOL\\,105}$\")\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The results are similar to what we obtained in our [last notebook](06_Verification_of_SOL_106_Nonlinear_Buckling_Method.ipynb#verification) for the box beam. We observe a nearly constant nonlinear buckling load for $P_x/P_\\text{SOL 105}<1$, although slightly lower than the linear buckling load this time, except for the first applied load where SOL 106 predicts half the buckling load of SOL 105. This response can be explained by the fact that we are keeping the transverse load constant and scaling only the compression load, instead of uniformly scaling both, and by the fact that we are nondimensionalizing the nonlinear buckling load with the linear buckling load predicted for the configuration where only the compression load is applied, while a more appropriate nondimensionalization would use the linear buckling load of the configuration where both the compression and transverse load are applied. However, the response is qualitatively similar to the one observed for the box beam, and we don't expect any significant difference in the results if we were to use a more appropriate nondimensionalization.\n", "\n", "For $P_x/P_\\text{SOL 105}\\geq1$ the nonlinear buckling trend transitions to a linear relation with the applied loads, similarly to what we observed for the box beam. It is evident that along the natural equilibrium path of the broken supercritical pitchfork the linearization of the variation of the tangent stiffness matrix leads to the prediction of other buckling loads, which are actually never encountered." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } }, "source": [ "## Conclusion \n", "\n", "***\n", "\n", "In this notebook we have analyzed the nonlinear buckling behavior of an imperfect Euler's column. First we showed the equilibrium diagram of the broken supercritical pitchfork, then we showed the change of the lowest eigenvalue of the tangent stiffness matrix with the applied loads, which demonstrated the stability of the structure for the entire investigated load range. Finally, we showed the variation of the buckling load predicted by SOL 106's nonlinear buckling method for different applied loads and we found a similar behavior to what we observed for the box beam under a bending load, that is to say a nearly constant buckling load for $P_x/P_\\text{SOL 105}<1$ and a linear relation with the applied loads for $P_x/P_\\text{SOL 105}\\geq1$.\n", "\n", "This seems to confirm our hypothesis that the box beam loaded in bending moves along an equilibrium path equivalent to the natural path of the broken supercritical pitchfork of the imperfect Euler's column.\n", "\n", "In our [next notebook](08_Nonlinear_Buckling_Analysis_of_a_Box_Beam_Reinforced_with_Ribs.ipynb) we are going to increase the complexity of our box beam model adding some ribs inside the structure." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.17" } }, "nbformat": 4, "nbformat_minor": 0 }