mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-08-06 04:21:33 +00:00
425 lines
58 KiB
Plaintext
425 lines
58 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Ideal plastic Von Mises material\n",
|
||
"\n",
|
||
"Author(s): Olli Väinölä <olli.vainola@student.oulu.fi>\n",
|
||
"\n",
|
||
"In this notebook is an small tutorial, how to create a Von Mises material without any hardening. Equations are formulated into rate depended form."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# imports\n",
|
||
"using ForwardDiff\n",
|
||
"using NLsolve\n",
|
||
"using PyPlot"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Let's create a isotropic Hooke material."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"6x6 Array{Float64,2}:\n",
|
||
" 2.69231e5 1.15385e5 1.15385e5 0.0 0.0 0.0 \n",
|
||
" 1.15385e5 2.69231e5 1.15385e5 0.0 0.0 0.0 \n",
|
||
" 1.15385e5 1.15385e5 2.69231e5 0.0 0.0 0.0 \n",
|
||
" 0.0 0.0 0.0 1.53846e5 0.0 0.0 \n",
|
||
" 0.0 0.0 0.0 0.0 1.53846e5 0.0 \n",
|
||
" 0.0 0.0 0.0 0.0 0.0 1.53846e5"
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"\n",
|
||
"\"\"\"\n",
|
||
"Create a isotropic Hooke material matrix C \n",
|
||
"\n",
|
||
"More information: # http://www.efunda.com/formulae/solid_mechanics/mat_mechanics/hooke_isotropic.cfm\n",
|
||
"\n",
|
||
"Parameters\n",
|
||
"----------\n",
|
||
" E: Float\n",
|
||
" Elastic modulus\n",
|
||
" ν: Float\n",
|
||
" Poisson constant\n",
|
||
"\n",
|
||
"Returns\n",
|
||
"-------\n",
|
||
" Array{Float64, (6,6)}\n",
|
||
"\"\"\"\n",
|
||
"function hookeStiffnessTensor(E, ν)\n",
|
||
" a = 1 - ν\n",
|
||
" b = 1 - 2*ν\n",
|
||
" c = 1 + ν\n",
|
||
" multiplier = E / (b * c)\n",
|
||
" return Float64[a ν ν 0 0 0;\n",
|
||
" ν a ν 0 0 0;\n",
|
||
" ν ν a 0 0 0;\n",
|
||
" 0 0 0 b 0 0;\n",
|
||
" 0 0 0 0 b 0;\n",
|
||
" 0 0 0 0 0 b].*multiplier\n",
|
||
"end\n",
|
||
"\n",
|
||
"# Pick material values\n",
|
||
"E = 200.0e3\n",
|
||
"ν = 0.3\n",
|
||
"C = hookeStiffnessTensor(E, ν)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"source": [
|
||
"# Defining equations for the calculation\n",
|
||
"\n",
|
||
"Functions are defined for strain controller simulation"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"calculate_stress (generic function with 2 methods)"
|
||
]
|
||
},
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"# using vectors with double contradiction\n",
|
||
"# http://www-2.unipv.it/compmech/teaching/available/const_mod/const_mod_mat-review_notation.pdf\n",
|
||
"M = [1 0 0 0 0 0;\n",
|
||
" 0 1 0 0 0 0;\n",
|
||
" 0 0 1 0 0 0;\n",
|
||
" 0 0 0 2 0 0;\n",
|
||
" 0 0 0 0 2 0;\n",
|
||
" 0 0 0 0 0 2;]\n",
|
||
"\n",
|
||
"\"\"\"\n",
|
||
"Equivalent tensile stress. \n",
|
||
"\n",
|
||
"More info can be found from: https://en.wikipedia.org/wiki/Von_Mises_yield_criterion\n",
|
||
" Section: Reduced von Mises equation for different stress conditions\n",
|
||
"\n",
|
||
"Parameters\n",
|
||
"----------\n",
|
||
" σ: Array{Float64, 6}\n",
|
||
" Stress in Voigt notation\n",
|
||
"\n",
|
||
"Returns\n",
|
||
"-------\n",
|
||
" Float\n",
|
||
"\"\"\"\n",
|
||
"function σₑ(σ)\n",
|
||
" s = σ[1:6] - 1/3 * sum([σ[1], σ[2], σ[3]]) * [1 1 1 0 0 0]'\n",
|
||
" return sqrt(3/2 * s' * M * s)[1]\n",
|
||
"end\n",
|
||
"\n",
|
||
"\n",
|
||
"\"\"\"\n",
|
||
"Von Mises Yield criterion\n",
|
||
"\n",
|
||
"More info can be found from: http://csm.mech.utah.edu/content/wp-content/uploads/2011/10/9tutorialOnJ2Plasticity.pdf\n",
|
||
"\n",
|
||
"Parameters\n",
|
||
"----------\n",
|
||
" σ: Array{Float64, 6}\n",
|
||
" Stress in Voigt notation\n",
|
||
" k: Float64\n",
|
||
" Material constant, Yield limit\n",
|
||
"\n",
|
||
"Returns\n",
|
||
"-------\n",
|
||
" Float\n",
|
||
"\"\"\"\n",
|
||
"function vonMisesYield(σ, k)\n",
|
||
" σₑ(σ) - k\n",
|
||
"end\n",
|
||
"\n",
|
||
"\"\"\"\n",
|
||
"Function for NLsolve. Inside this function are the equations which we want to find root.\n",
|
||
"Ψ is the yield function below. Functions defined here:\n",
|
||
"\n",
|
||
" dσ - C (dϵ - dλ*dΨ/dσ) = 0\n",
|
||
" σₑ(σ) - k = 0\n",
|
||
"\n",
|
||
"Parameters\n",
|
||
"----------\n",
|
||
" params: Array{Float64, 7}\n",
|
||
" Array containing values from solver\n",
|
||
" dϵ: Array{Float64, 6}\n",
|
||
" Strain rate vector in Voigt notation\n",
|
||
" C: Array{Float64, (6, 6)}\n",
|
||
" Material tensor\n",
|
||
" k: Float\n",
|
||
" Material constant, yield limit\n",
|
||
" Δt: Float\n",
|
||
" time increment\n",
|
||
" σ_begin:Array{Float64, 6}\n",
|
||
" Stress vector in Voigt notation\n",
|
||
"\n",
|
||
"Returns\n",
|
||
"-------\n",
|
||
" Array{Float64, 7}, return values for solver\n",
|
||
"\"\"\"\n",
|
||
"function G(params, dϵ, C, k, σ_begin)\n",
|
||
"\n",
|
||
" # Creating wrapper for gradient\n",
|
||
" yield(pars) = vonMisesYield(pars, k)\n",
|
||
" dfdσ = ForwardDiff.gradient(yield)\n",
|
||
" \n",
|
||
" # Stress rate\n",
|
||
" dσ = params[1:6]\n",
|
||
" \n",
|
||
" σ_tot = [vec(σ_begin); 0.0] + params\n",
|
||
" \n",
|
||
" # Calculating plastic strain rate\n",
|
||
" dϵp = params[end] * dfdσ(σ_tot)\n",
|
||
" \n",
|
||
" # Calculating equations\n",
|
||
" function_1 = dσ - C * (dϵ - dϵp[1:6])\n",
|
||
" function_2 = yield(σ_tot)\n",
|
||
" [vec(function_1); function_2]\n",
|
||
"end\n",
|
||
"\n",
|
||
"\"\"\"\n",
|
||
"Function which calculates the stress. Also handles if any yielding happens\n",
|
||
"\n",
|
||
"Parameters\n",
|
||
"----------\n",
|
||
" dϵ: Array{Float64, 6}\n",
|
||
" Strain rate vector in Voigt notation\n",
|
||
" Δt: Float\n",
|
||
" time increment\n",
|
||
" σ: Array{Float64, 6}\n",
|
||
" Last stress vector in Voigt notation\n",
|
||
" C: Array{Float64, (6, 6)}\n",
|
||
" Material tensor\n",
|
||
" k: Float\n",
|
||
" Material constant, yield limit\n",
|
||
"\n",
|
||
"Returns\n",
|
||
"-------\n",
|
||
" Tuple\n",
|
||
" Plastic strain rate dϵᵖ and new stress vector σ\n",
|
||
"\"\"\"\n",
|
||
"function calculate_stress(dϵ, σ, C, k)\n",
|
||
" # Test stress\n",
|
||
" σ_tria = σ + C * dϵ\n",
|
||
" \n",
|
||
" # Calculating yield\n",
|
||
" yield = vonMisesYield(σ_tria, k)\n",
|
||
"\n",
|
||
" if yield > 1\n",
|
||
" # Yielding happened\n",
|
||
" # Creating functions for newton: xₙ₊₁ = xₙ - df⁻¹ * f and initial values\n",
|
||
" initial_guess = [vec(σ_tria - σ); 0.1]\n",
|
||
" f(σ_) = G(σ_, dϵ, C, k, σ)\n",
|
||
" df = ForwardDiff.jacobian(f)\n",
|
||
" \n",
|
||
" # Calculating root \n",
|
||
" result = nlsolve(not_in_place(f, df), initial_guess).zero\n",
|
||
"\n",
|
||
" σ[:] += result[1:6]\n",
|
||
" else\n",
|
||
" σ = σ_tria\n",
|
||
" end\n",
|
||
" return σ\n",
|
||
"end"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Defining strain history"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {
|
||
"collapsed": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"300-element Array{Float64,1}:\n",
|
||
" -0.0 \n",
|
||
" -5.67002e-5 \n",
|
||
" -0.000113175\n",
|
||
" -0.0001692 \n",
|
||
" -0.000224554\n",
|
||
" -0.000279014\n",
|
||
" -0.000332367\n",
|
||
" -0.000384399\n",
|
||
" -0.000434904\n",
|
||
" -0.00048368 \n",
|
||
" -0.000530536\n",
|
||
" -0.000575283\n",
|
||
" -0.000617745\n",
|
||
" ⋮ \n",
|
||
" 0.000575283\n",
|
||
" 0.000530536\n",
|
||
" 0.00048368 \n",
|
||
" 0.000434904\n",
|
||
" 0.000384399\n",
|
||
" 0.000332367\n",
|
||
" 0.000279014\n",
|
||
" 0.000224554\n",
|
||
" 0.0001692 \n",
|
||
" 0.000113175\n",
|
||
" 5.67002e-5 \n",
|
||
" 6.61309e-19"
|
||
]
|
||
},
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"steps = 300\n",
|
||
"strain_max = 0.003\n",
|
||
"num_cycles = 3\n",
|
||
"\n",
|
||
"ϵ_tot = zeros(Float64, (steps, 6))\n",
|
||
"ϵ_tot2 = zeros(Float64, (steps, 6))\n",
|
||
"ϵ_tot3 = zeros(Float64, (steps, 6))\n",
|
||
"\n",
|
||
"# Adding only strain in x-axis and counting for the poisson effect\n",
|
||
"ϵ_tot[:, 1] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps))\n",
|
||
"ϵ_tot[:, 2] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps)).*-ν\n",
|
||
"ϵ_tot[:, 3] = strain_max * sin(2 * pi * linspace(0, num_cycles, steps)).*-ν"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Simulation\n",
|
||
"\n",
|
||
"Ok, we're good to go! Now we just need to define yield limit and the main loop.\n",
|
||
"\n",
|
||
"This simulation is not time dependent, but since it's already defined in the equations we'll give it value 1"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {
|
||
"collapsed": false,
|
||
"scrolled": false
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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nZ2dZedkZGTA0dHR4uM4OTnJ1oYlIiIiIioou6h8T58+HRUqVDButGCJi4sLACArK8vsmGGzC8M5Li4usm2g859rOC+v5ORkREVFoVq1ahaPExEREZGyMjIy8Pvvv6NLly4W1+G3BptPvuPj47Fq1SosWbIEt27dMs5nZmYiOzsbN27cgJubm7HdxNJuYklJSfDy8jIuNejj4wOdTofk5GTZG5OdnY3U1FT4+vqaPUZUVBTeeOONon55RERERFTENm7caHEHWmuw+eQ7ISEBer0eEyZMwIQJE8yOV69eHe+88w4++eQTeHt7IyYmxuycU6dOoVGjRsbbjRs3BgDExMSgW7duxvnTp09Dr9fLzjUw7La3ceNG1K1b91lfFhWDiRMnYvHixUqHQRbwvVEvvjfqxvdHvfjeqNOlS5fwxhtvGPM2Jdh88v3iiy/i22+/lS0rKEkSpk+fjkePHmHp0qWoUaMGAKB///5Yt24dbt26JVvnOz4+HpMnTzbev0OHDvD09MSKFStkyfeKFStQtmxZ9OjRwywOQ6tJ3bp10aRJk2J5rfRs3N3d+d6oFN8b9eJ7o258f9SL7426KdkibPPJt5eXF3r37m02b/i02atXL+PctGnTsH37drRv3x4hISFIS0vDwoUL0aBBAwQFBRnPc3Z2xqxZszB27FgEBgaic+fOOHLkCDZt2oS5c+dygx0iIiIiKhSbT76fRKPRmG2y4+fnh0OHDmHSpEl4//334eTkhICAAISGhsq2lgeAMWPGwMHBAaGhodi9ezf8/f2xZMkSi60tREREREQFYbfJd3R0tMX5evXqYe/evQV6jJEjR2LkyJFFGRYRERERlWB2sc43UUEMGTJE6RDoCfjeqBffG3Xj+6NefG/oSTSSJElKB2EPzp49i6ZNm+LMmTO8wIKIiIhIhdSQr7HyTURERERkJUy+iYiIiIishMk3EREREZGVMPkmIiIiIrISJt9ERERERFbC5JuIiIiIyEqYfBMRERERWQmTbyIiIiIiK2HyTURERERkJUy+iYiIiIishMk3EREREZGVMPkmIiIiIrISJt9ERERERFbC5JuIiIiIyEqYfBMRERERWQmTbyIiIiIiK2HyTURERERkJUy+iYiIiIishMk3EREREZGVMPkmIiIiIrISJt9ERERERFbC5JuIiIiIyEqYfBMRERERWQmT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rVtSOy9PXlSnomJjpRX0evXkiffJk9Jq+u7dTLyJiIiI1IQr31a0erV0mgggneltUtfHYhcuAC1bmvdHRwNlbF0nIiIiIhVh8m0lKSnA6NFSe9cuwM/P8ucKAURGAhs2mD+WnS3dRElERERE6sdtJ1Zw86bxqL/33wfCwix7XkKCtK3EyUmeeK9eLSXkQjDxJiIiIrIlXPmuZkVFQIMGUrtrV+Cdd+4/XqeTEvUzZ+T97dsDR44AtWpVT5xEREREVP248l3NXFyM7Z9/Ln+cvrKkVitPvBMTpRXulBQm3kRERES2jivf1cj0LO+SEvPHr141L/MOAGPGAMuXs8w7ERERkb3hync1GTLE2Nbp5In0tGnS16UT7/R0aZVbvwpORERERPaFyXc1WLwY2LJFamdmSttFUlKkhFqjAeLjjWPj4ow3TzZvrky8RERERGQd3HZSxX79FXjtNan900/SEYH798vHNGoEnD8P1Klj/fiIiIiISDlMvqvYmDHGdp8+8se2bwcGDrRqOERERESkIky+q1lYmJR0s8w7ERERETH5riYnTwJt2igdBRERERGpCW+4rGK//CLdPMnEm4iIiIhKY/JdxXhEIBERERGVh8k3EREREZGVMPkmIiIiIrISJt9ERERERFbC5JuIiIiIyEqYfBMRERERWQmTbyIiIiIiK2HyTURERERkJUy+iYiIiIishMk3EREREZGVMPkmIiIiIrISJt9ERERERFbC5JuIiIiIyEqYfBMRERERWQmTbyIiIiIiK2HyTURERERkJUy+iYiIiIishMk3EREREZGVMPkmIiIiIrISJt9ERERERFbC5JuIiIiIyEqYfBMRERERWQmTbyIiIiIiK2HyTURERERkJUy+iYiIiIishMk3EREREZGVMPkmIiIiIrISJt9ERERERFbC5JuIiIiIyEqYfBMRERERWQmTbyIiIiIiK7G75DsqKgpOTk4YNGhQmY8nJiaiR48ecHNzg7e3NyZPnoy8vDyzcUIIxMbGokWLFtBqtejQoQM2bNhQ3eETERERkR2zq+T7l19+wapVq+Dq6gqNRmP2+IkTJ9C3b1/odDrEx8dj/PjxWLp0KcLDw83Gzp49G9HR0QgLC8OiRYvg6+uLyMhIbNy40RqXQkRERER2yG6SbyEE/va3v2H06NHw9PQsc8zs2bPxyCOPYN++fZgw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",
|
||
"text/plain": [
|
||
"PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x7f6b660944d0>)"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"PyObject <matplotlib.text.Text object at 0x7f6b63ad4f90>"
|
||
]
|
||
},
|
||
"execution_count": 8,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"ϵ_last = zeros(Float64, (6))\n",
|
||
"ϵᵖ = zeros(Float64, (6))\n",
|
||
"σ = zeros(Float64, (6, 1))\n",
|
||
"Δt = 1.0\n",
|
||
"σy = 200.0\n",
|
||
"ss = Float64[]\n",
|
||
"ee = Float64[]\n",
|
||
"\n",
|
||
"for i=1:steps\n",
|
||
" dϵ = reshape(ϵ_tot[i, :, :], (6, 1)) - ϵ_last\n",
|
||
" σ = calculate_stress(dϵ, σ, C, σy)\n",
|
||
" ϵ_last += dϵ * Δt\n",
|
||
" push!(ss, σ[1])\n",
|
||
" push!(ee, ϵ_last[1]) \n",
|
||
"end\n",
|
||
"\n",
|
||
"PyPlot.plot(ee, ss)\n",
|
||
"PyPlot.title(\"Stress-Strain curve\")\n",
|
||
"PyPlot.xlabel(\"Strain\")\n",
|
||
"PyPlot.ylabel(\"Stress\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"collapsed": true
|
||
},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Julia 0.4.1-pre",
|
||
"language": "julia",
|
||
"name": "julia-0.4"
|
||
},
|
||
"language_info": {
|
||
"file_extension": ".jl",
|
||
"mimetype": "application/julia",
|
||
"name": "julia",
|
||
"version": "0.4.1"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0
|
||
}
|