private double CalNY(double c, int div = 1000) { double dy = H / (div - 1); double phi = -ConcProperty.Epsu / c; double oc = H * 0.5 - c; double NC = 0; double NS = 0.0; for (int i = 0; i < div; i++) { double y0 = -0.5 * H + dy * i; double l0 = CutLengY(y0); double eps = phi * (y0 - oc); double Nconc = ConcProperty.GetSigma(eps) * dy * l0; NC += Nconc; } foreach (SingleRebar item in Rebars) { double eps = phi * (item.Location.Y - oc); double Nsteel = RebarProperty.GetSigma(eps); NS += Nsteel; } return(NS + NC); }
private double CalMY(double c, int div = 1000) { double dy = H / (div - 1); double phi = -ConcProperty.Epsu / c; double oc = H * 0.5 - c; double MC = 0; double MS = 0.0; for (int i = 0; i < div; i++) { double y0 = -0.5 * H + dy * i; double l0 = CutLengY(y0); double eps = phi * (y0 - oc); double Nconc = ConcProperty.GetSigma(eps) * dy * l0; MC += Nconc * (y0 - PlasticCenter.Y); } foreach (SingleRebar item in Rebars) { double eps = phi * (item.Location.Y - oc); double Nsteel = RebarProperty.GetSigma(eps); MS += Nsteel * (item.Location.Y - PlasticCenter.Y); } return(MS + MC); }
private double CalNX(double c, int div = 1000) { double dx = B / (div - 1); double phi = -ConcProperty.Epsu / c; double oc = 0.5 * B - c; double NC = 0; double NS = 0.0; for (int i = 0; i < div; i++) { double x0 = -0.5 * B + dx * i; double l0 = CutLengX(x0); double eps = phi * (x0 - oc); double Nconc = ConcProperty.GetSigma(eps) * dx * l0; NC += Nconc; } foreach (SingleRebar item in Rebars) { double eps = phi * (item.Location.X - oc); double Nsteel = RebarProperty.GetSigma(eps); NS += Nsteel; } return(NS + NC); }
private double CalMX(double c, int div = 1000) { double dx = B / (div - 1); double phi = -ConcProperty.Epsu / c; double oc = B * 0.5 - c; double MC = 0; double MS = 0.0; for (int i = 0; i < div; i++) { double x0 = -0.5 * B + dx * i; double l0 = CutLengX(x0); double eps = phi * (x0 - oc); double Nconc = ConcProperty.GetSigma(eps) * dx * l0; MC += Nconc * (x0 - PlasticCenter.Y); } foreach (SingleRebar item in Rebars) { double eps = phi * (item.Location.X - oc); double Nsteel = RebarProperty.GetSigma(eps); MS += Nsteel * (item.Location.X - PlasticCenter.X); } return(MS + MC); }