Skip to content

Commit

Permalink
Add bending-moment.ipynb as example
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesbayley committed Apr 16, 2024
1 parent 87f17b2 commit 20b05e2
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions examples/bending-moment.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"dotnet_interactive": {
"language": "fsharp"
},
"polyglot_notebook": {
"kernelName": "fsharp"
},
"vscode": {
"languageId": "polyglot-notebook"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"z_bal: 123.00 mm\n"
]
}
],
"source": [
"open FSharp.Data.UnitSystems.SI.UnitSymbols\n",
"\n",
"[<Measure>]\n",
"type mm\n",
"\n",
"// 1. Define partial safety factors.\n",
"let γ_c = 1.5\n",
"let γ_s = 1.15\n",
"\n",
"// 2. Factors to account for long-term effects on concrete.\n",
"let α_cc = 0.85\n",
"let α_ct = 1.0\n",
"\n",
"// 3. Selected concrete strength.\n",
"let fck = 25.0<N / mm^2>\n",
"\n",
"// 4. Ultimate concrete design stress.\n",
"let fcd = α_cc * fck / 1.5\n",
"\n",
"// 5. Concrete strain limits.\n",
"let εc2 = 0.002\n",
"let εcu2 = 0.0035\n",
"\n",
"// 6. Rebar steel strength.\n",
"let fyk = 500.0<N / mm^2>\n",
"\n",
"// 7. Rebar steel modulus.\n",
"let Es = 200_000.0<N / mm^2>\n",
"\n",
"// 8. Rebar design yield strain.\n",
"let εy = fyk / (γ_s * Es)\n",
"\n",
"// 9. Equation to calculate neutral axis, x.\n",
"let x εst εcu2 (d: float<mm>) = d / (1.0 + (εst / εcu2))\n",
"let x_partial = x 0.00217 0.0035\n",
"\n",
"// 10. Stress block reduced to 0.8x depth.\n",
"let s d = (x_partial d) * 0.8\n",
"\n",
"// 11. Calculate concrete compressive force.\n",
"let Fcc d (b: float<mm>) = fcd * (s d) * b\n",
"\n",
"// 12. Calculate moment.\n",
"let z d = d - (s d / 2.0)\n",
"let M d b = (Fcc d b) * (z d)\n",
"\n",
"// 13. Calculate area of steel.\n",
"let As d b = (M d b) / (0.87 * fyk * (z d))\n",
"\n",
"M 440.0<mm> 260.0<mm> / 10E6\n",
"As 440.0<mm> 260.0<mm>\n",
"\n",
"let x_limit = 0.45\n",
"let z_bal (d: float<mm>) = d - (0.8 * x_limit * d) / 2.0\n",
"\n",
"printfn $\"z_bal: %.2f{z_bal 150.0<mm>} mm\""
]
}
],
"metadata": {
"language_info": {
"name": "csharp"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

0 comments on commit 20b05e2

Please sign in to comment.