Exemple #1
0
        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);
        }
Exemple #2
0
        public CompressionZoneResult Calculate(double x, Section section)
        {
            var compressionZoneCoordinates = CompressionZoneCoordinates.CoordinatesOfCompressionZone(section.Coordinates, section.MaxY - x);
            var compressionZone            = new Section(compressionZoneCoordinates);

            compressionZone.IntegrationPointY = section.IntegrationPointY;
            Func <double, double> distance = y => section.MaxY - y;
            Func <double, double> strain   = di => this.strainCalculations.StrainInConcrete(x, distance(di));
            Func <double, double> stress   = e => StressFunctions.ConcreteStressDesign(strain(e), this.concrete);
            var integration = new Integration();
            var result      = integration.Integrate(compressionZone, stress);

            return(result);
        }
Exemple #3
0
        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);
        }