Example #1
0
        public void CreateUpliftCalculator_Always_ReturnsUpliftCalculator()
        {
            // Setup
            IPipingSubCalculatorFactory factory = PipingSubCalculatorFactory.Instance;

            // Call
            IUpliftCalculator calculator = factory.CreateUpliftCalculator();

            // Assert
            Assert.IsInstanceOf <UpliftCalculator>(calculator);
        }
Example #2
0
        private IUpliftCalculator CreateUpliftCalculator()
        {
            double effectiveStress = DetermineEffectiveStressForOneLayerProfile(input.EffectiveThicknessCoverageLayer, input.SaturatedVolumicWeightOfCoverageLayer, input.WaterVolumetricWeight);

            IUpliftCalculator calculator = factory.CreateUpliftCalculator();

            calculator.SetVolumetricWeightOfWater(input.WaterVolumetricWeight);
            calculator.SetModelFactorUplift(input.UpliftModelFactor);
            calculator.EffectiveStress = effectiveStress;
            calculator.SetHRiver(input.AssessmentLevel);
            calculator.SetPhiExit(input.PiezometricHeadExit);
            calculator.SetRExit(input.DampingFactorExit);
            calculator.SetHExit(input.PhreaticLevelExit);
            calculator.SetPhiPolder(input.PhreaticLevelExit);

            return(calculator);
        }
Example #3
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
            }));
        }
Example #4
0
        private IUpliftCalculator CalculateUplift()
        {
            IUpliftCalculator upliftCalculator = CreateUpliftCalculator();

            try
            {
                upliftCalculator.Calculate();
            }
            catch (WTIUpliftCalculatorException e)
            {
                throw new PipingCalculatorException(e.Message, e);
            }
            catch (PipingException <EffectiveThicknessCalculator> e)
            {
                throw new PipingCalculatorException(e.Message, e);
            }

            return(upliftCalculator);
        }