Add rebar section logic

This commit is contained in:
RedikultsevEvg
2025-07-16 00:27:44 +05:00
parent 43c78729f0
commit 0addeda339
17 changed files with 478 additions and 48 deletions

View File

@@ -39,14 +39,9 @@ namespace StructureHelperLogics.Models.BeamShears
{
double area = Math.PI * source.Diameter * source.Diameter / 4d;
TraceLogger?.AddMessage($"Area of rebar = {Math.PI} * ({source.Diameter})^2 / 4 = {area}(m^2)");
double materialStrength = source.Material.GetStrength(LimitStates.ULS, CalcTerms.ShortTerm).Tensile;
TraceLogger?.AddMessage($"Stirrup material strength Rsw = {materialStrength}");
double stirrupStrength = stirrupStrengthFactor * materialStrength;
TraceLogger?.AddMessage($"Strength of rebar Rsw = {stirrupStrengthFactor} * {materialStrength} = {stirrupStrength}(Pa)");
double minimizedStrength = Math.Min(stirrupStrength, maxStirrupStrength);
TraceLogger?.AddMessage($"Strength of rebar Rsw = Min({stirrupStrength}, {maxStirrupStrength})= {minimizedStrength}(Pa)");
double minimizedStrength = GetRebarStrength(source);
double spiralEffectiveness = 1;
if (source.IsSpiral = true)
if (source.IsSpiral == true)
{
spiralEffectiveness = GetSpiralEffectiveness(source);
}
@@ -55,6 +50,17 @@ namespace StructureHelperLogics.Models.BeamShears
return density;
}
private double GetRebarStrength(IStirrupByRebar source)
{
double materialStrength = source.Material.GetStrength(LimitStates.ULS, CalcTerms.ShortTerm).Tensile;
TraceLogger?.AddMessage($"Stirrup material strength Rsw = {materialStrength}");
double stirrupStrength = stirrupStrengthFactor * materialStrength;
TraceLogger?.AddMessage($"Strength of rebar Rsw = {stirrupStrengthFactor} * {materialStrength} = {stirrupStrength}(Pa)");
double minimizedStrength = Math.Min(stirrupStrength, maxStirrupStrength);
TraceLogger?.AddMessage($"Strength of rebar Rsw = Min({stirrupStrength}, {maxStirrupStrength})= {minimizedStrength}(Pa)");
return minimizedStrength;
}
private double GetSpiralEffectiveness(IStirrupByRebar source)
{
if (inclinedSection is null)