private double mrdReinforcement(double x) { var Mrd = 0d; var yOsi = this.section.MaxY - x; Reinforcement barsTemp; for (int i = 0; i <= this.reinforcement.Count - 1; i++) { barsTemp = this.reinforcement[i]; var multiplier = barsTemp.IsCompressed ? 1 : -1; barsTemp.Sigma = StressFunctions.SteelStressDesign(barsTemp.Epsilon, this.steel) * multiplier; barsTemp.Epsilon = barsTemp.Epsilon * multiplier; barsTemp.Force = barsTemp.Bar.As * barsTemp.Sigma; barsTemp.Moment = barsTemp.Force * (reinforcement[i].Bar.Y - this.section.MinY); //if (this.reinforcement[i].Bar.Y > yOsi) //{ Mrd = Mrd + barsTemp.Moment; //} //else //{ // Mrd = Mrd - barsTemp.Moment; //} this.reinforcement[i] = barsTemp; } return(Mrd); }
private double forceInAs2(double x) { var resultantForce = 0d; var yNeutralAxis = this.section.MaxY - x; for (int i = 0; i <= this.reinforcement.Count - 1; i++) { if (this.reinforcement[i].Bar.Y > yNeutralAxis) { var di = this.reinforcement[i].D; var e = this.strainCalculations.StrainInAs2(x, di); resultantForce = resultantForce + this.reinforcement[i].Bar.As * StressFunctions.SteelStressDesign(e, this.steel); var barsTemp = this.reinforcement[i]; barsTemp.Epsilon = e; barsTemp.IsCompressed = true; this.reinforcement[i] = barsTemp; } } return(resultantForce); }