public override double CalculateTd() { if (Hr >= 3 * PilePropertyInfo.PileDiameter) { if (SocketedPileSoilLayerInfoProp == null || SocketedPileSoilLayerInfoProp.Count == 0) { throw new ArgumentNullException($"{PileCode}的SocketedPileSoilInfoProp属性为null或者为empty"); } double accumlatenum = 0; foreach (var pilesoil in SocketedPileSoilLayerInfoProp) { accumlatenum += pilesoil.Xifi2 * pilesoil.Xifi * pilesoil.Qfi * pilesoil.PileInSoilLayerLength; } return((PilePropertyInfo.GetPilePerimeter() * accumlatenum + PilePropertyInfo.GetPileGravity() * PilePropertyInfo.GetCosAlpha()) / GammaTs + PilePropertyInfo.GetPilePerimeter() * Xis2 * Frk * Hr / GammaTr); } else { throw new ApplicationException(" 嵌入深度小于3倍桩径,无法计算Qt"); } }
protected virtual double CalculateTd <T>(ObservableCollection <T> pileLayerInfoProp, double gammaR) where T : SoilLayerInfoBase { if (pileLayerInfoProp == null || pileLayerInfoProp.Count == 0) { throw new ArgumentNullException($"{PileCode}的PileLayerInfo属性为null或者为empty"); } double accumlatenum = 0; foreach (var pilesoil in pileLayerInfoProp) { accumlatenum += pilesoil.Xii * pilesoil.PileInSoilLayerLength * pilesoil.Qfi; } return((PilePropertyInfo.GetPilePerimeter() * accumlatenum + PilePropertyInfo.GetPileGravity() * PilePropertyInfo.GetCosAlpha()) / gammaR); }