Example #1
0
 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");
     }
 }
Example #2
0
        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);
        }