-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
87f17b2
commit 20b05e2
Showing
1 changed file
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |