Пример #1
0
        public void CreateHeaveCalculator_Always_ReturnsHeaveCalculator()
        {
            // Setup
            IPipingSubCalculatorFactory factory = PipingSubCalculatorFactory.Instance;

            // Call
            IHeaveCalculator calculator = factory.CreateHeaveCalculator();

            // Assert
            Assert.IsInstanceOf <HeaveCalculator>(calculator);
        }
Пример #2
0
        private IHeaveCalculator CreateHeaveCalculator()
        {
            IHeaveCalculator calculator = factory.CreateHeaveCalculator();

            calculator.SetIch(input.CriticalHeaveGradient);
            calculator.SetPhiExit(input.PiezometricHeadExit);
            calculator.SetDTotal(input.ThicknessCoverageLayer);
            calculator.SetPhiPolder(input.PhreaticLevelExit);
            calculator.SetRExit(input.DampingFactorExit);
            calculator.SetHExit(input.PhreaticLevelExit);

            return(calculator);
        }
Пример #3
0
        private IHeaveCalculator CalculateHeave()
        {
            IHeaveCalculator heaveCalculator = CreateHeaveCalculator();

            try
            {
                heaveCalculator.Calculate();
            }
            catch (PipingException <HeaveCalculator> e)
            {
                throw new PipingCalculatorException(e.Message, e);
            }

            return(heaveCalculator);
        }
Пример #4
0
        /// <summary>
        /// Performs the actual sub calculations and returns a <see cref="PipingCalculatorResult"/>, which
        /// contains the results of all sub calculations.
        /// </summary>
        /// <returns>A <see cref="PipingCalculatorResult"/> containing the results of the sub calculations.</returns>
        /// <exception cref="PipingCalculatorException">Thrown when any of the invocations of the sub calculations from the kernel throws an Exception.</exception>
        public PipingCalculatorResult Calculate()
        {
            IUpliftCalculator     upliftResult     = CalculateUplift();
            IHeaveCalculator      heaveResult      = CalculateHeave();
            ISellmeijerCalculator sellmeijerResult = CalculateSellmeijer();

            return(new PipingCalculatorResult(new PipingCalculatorResult.ConstructionProperties
            {
                UpliftFactorOfSafety = upliftResult.FoSu,
                HeaveFactorOfSafety = heaveResult.FoSh,
                SellmeijerFactorOfSafety = sellmeijerResult.FoSp,
                UpliftEffectiveStress = upliftResult.EffectiveStress,
                HeaveGradient = heaveResult.Gradient,
                SellmeijerCreepCoefficient = sellmeijerResult.CreepCoefficient,
                SellmeijerCriticalFall = sellmeijerResult.CriticalFall,
                SellmeijerReducedFall = sellmeijerResult.ReducedFall
            }));
        }