예제 #1
0
        public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            NominalAggregateSize size = (NominalAggregateSize)value;

            switch (size)
            {
            case NominalAggregateSize.Size9_5:
                return("9.5mm");

            case NominalAggregateSize.Size12_5:
                return("12.5mm");

            case NominalAggregateSize.Size19:
                return("19mm");

            case NominalAggregateSize.Size25:
                return("25mm");

            case NominalAggregateSize.Size37_5:
                return("37.5mm");

            case NominalAggregateSize.Size50:
                return("50mm");

            case NominalAggregateSize.Size75:
                return("75mm");

            case NominalAggregateSize.Size150:
                return("150mm");

            default:
                break;
            }
            return(string.Empty);
        }
예제 #2
0
        /// <summary>
        /// Calculate coarse aggregate size for unit volume of concrete
        /// </summary>
        /// <param name="nominalSize">Nominal size of coarse aggregate</param>
        /// <param name="finenessModulus">Fineness modulus of fine aggregate</param>
        public static double CalculateCoarseAggVol(NominalAggregateSize nominalSize, double finenessModulus)
        {
            var    mVolumes  = CoarseAggregateVolumes[nominalSize];
            double minFiness = 0;
            double maxFiness = 0;
            double minVol    = 0;
            double maxVol    = 0;

            for (int i = 0; i < mVolumes.Keys.Count; i++)
            {
                if (finenessModulus >= mVolumes.Keys.ToArray()[i])
                {
                    minFiness = mVolumes.Keys.ToArray()[i];
                    minVol    = mVolumes[minFiness];
                }
                if (finenessModulus <= mVolumes.Keys.ToArray()[i])
                {
                    maxFiness = mVolumes.Keys.ToArray()[i];
                    maxVol    = mVolumes[maxFiness];
                    break;
                }
            }

            if (minVol == maxVol)
            {
                return(minVol);
            }

            double result = Interpolator.Interpolate(minFiness, minVol, maxFiness, maxVol, finenessModulus);

            return(result);
        }
예제 #3
0
        /// <summary>
        /// Get the appropriate cement weight for specified <paramref name="aggSize"/> taking account for severe exposure.
        /// </summary>
        /// <param name="aggSize">Nominal aggregate size</param>
        /// <param name="isSevereExposure">Is concrete exposed to sever freezing and thawing exposure</param>
        /// <returns>Sufficient weight in kg/m^3</returns>
        public static double GetSufficientWeight(NominalAggregateSize aggSize, bool isSevereExposure)
        {
            double mWeight = MinRequiredCement[aggSize];

            if (isSevereExposure)
            {
                return(mWeight >= SevereExposureMinWeight ? mWeight : SevereExposureMinWeight);
            }
            return(mWeight);
        }
예제 #4
0
 /// <summary>
 /// Get mix water content in kg/m^3 of concrete mix
 /// </summary>
 /// <param name="aggSize">Nominal aggregate size of coarse aggregate</param>
 /// <param name="slump">Amount of slump required</param>
 /// <param name="isAirEntrained">Is air entrained mix required</param>
 /// <returns>Water mass in kg/m^3</returns>
 public static double GetWaterContent(NominalAggregateSize aggSize, SlumpAmount slump, bool isAirEntrained)
 {
     if (isAirEntrained)
     {
         return(WaterMassAirEntrained[slump][aggSize]);
     }
     else
     {
         return(WaterMassNonAirEntrained[slump][aggSize]);
     }
 }
예제 #5
0
        /// <summary>
        /// Check if the weight <paramref name="weight"/> is sufficient for specified <paramref name="aggSize"/>
        /// </summary>
        /// <param name="aggSize">Nominal aggregate size in mm</param>
        /// <param name="weight">Cement weight in kg/m^3</param>
        /// <param name="isSevereExposure">Concrete is exposed to severe freezing and thawing and deicers components</param>
        /// <returns></returns>
        public static bool IsSufficientWeight(NominalAggregateSize aggSize, double weight, bool isSevereExposure)
        {
            double mWeight = weight;

            if (weight < MinRequiredCement[aggSize])
            {
                mWeight = MinRequiredCement[aggSize];
            }
            if (isSevereExposure && mWeight < SevereExposureMinWeight)
            {
                mWeight = SevereExposureMinWeight;
            }
            return(mWeight >= weight);
        }
 /// <summary>
 /// Get the air content recommended for freezing and thawing exposure <paramref name="exposure"/>, in percent.
 /// </summary>
 /// <param name="exposure"></param>
 /// <param name="aggSize"></param>
 /// <returns></returns>
 public static double GetAirContent(FreezingAndThawingExposure exposure, NominalAggregateSize aggSize)
 {
     return(EntrappedAirInAirConcrete[exposure][aggSize]);
 }
 /// <summary>
 /// Get the air content entrapped in non air entrapped concrete mix, in precent.
 /// </summary>
 /// <param name="aggSize"></param>
 /// <returns></returns>
 public static double GetAirContent(NominalAggregateSize aggSize)
 {
     return(EntrappedAirInNonAirConcrete[aggSize]);
 }