// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; namespace Ringtoets.Piping.KernelWrapper { /// /// This class contains all the results of a complete piping calculation. /// public class PipingCalculatorResult { /// /// Constructs a new . The result will hold all the values which were given. /// /// The container of the properties for the /// /// Thrown when the /// is null. internal PipingCalculatorResult(ConstructionProperties constructionProperties) { if (constructionProperties == null) { throw new ArgumentNullException(nameof(constructionProperties)); } UpliftZValue = constructionProperties.UpliftZValue; UpliftFactorOfSafety = constructionProperties.UpliftFactorOfSafety; HeaveZValue = constructionProperties.HeaveZValue; HeaveFactorOfSafety = constructionProperties.HeaveFactorOfSafety; SellmeijerZValue = constructionProperties.SellmeijerZValue; SellmeijerFactorOfSafety = constructionProperties.SellmeijerFactorOfSafety; UpliftEffectiveStress = constructionProperties.UpliftEffectiveStress; HeaveGradient = constructionProperties.HeaveGradient; SellmeijerCreepCoefficient = constructionProperties.SellmeijerCreepCoefficient; SellmeijerCriticalFall = constructionProperties.SellmeijerCriticalFall; SellmeijerReducedFall = constructionProperties.SellmeijerReducedFall; } /// /// Container for properties for constructing a . /// public class ConstructionProperties { /// /// Creates a new instance of . /// public ConstructionProperties() { UpliftZValue = double.NaN; UpliftFactorOfSafety = double.NaN; HeaveZValue = double.NaN; HeaveFactorOfSafety = double.NaN; SellmeijerZValue = double.NaN; SellmeijerFactorOfSafety = double.NaN; UpliftEffectiveStress = double.NaN; HeaveGradient = double.NaN; SellmeijerCreepCoefficient = double.NaN; SellmeijerCriticalFall = double.NaN; SellmeijerReducedFall = double.NaN; } /// /// Sets the z-value of the Uplift sub calculation. /// public double UpliftZValue { internal get; set; } /// /// Sets the factor of safety of the Uplift sub calculation. /// public double UpliftFactorOfSafety { internal get; set; } /// /// Sets the z-value of the Heave sub calculation. /// public double HeaveZValue { internal get; set; } /// /// Sets the factor of safety of the Heave sub calculation. /// public double HeaveFactorOfSafety { internal get; set; } /// /// Sets the z-value of the Sellmeijer sub calculation. /// public double SellmeijerZValue { internal get; set; } /// /// Sets the factor of safety of the Sellmeijer sub calculation. /// public double SellmeijerFactorOfSafety { internal get; set; } /// /// Sets the effective stress that was calculated for the uplift sub calculation. /// public double UpliftEffectiveStress { internal get; set; } /// /// Sets the gradient that was calculated for the heave sub calculation. /// public double HeaveGradient { internal get; set; } /// /// Sets the creep coefficient that was calculated for the Sellmeijer sub calculation. /// public double SellmeijerCreepCoefficient { internal get; set; } /// /// Sets the critical fall that was calculated for the Sellmeijer sub calculation. /// public double SellmeijerCriticalFall { internal get; set; } /// /// Sets the reduced fall that was calculated for the Sellmeijer sub calculation. /// public double SellmeijerReducedFall { internal get; set; } } #region Properties /// /// Gets the z-value of the Uplift sub calculation. /// public double UpliftZValue { get; private set; } /// /// Gets the factor of safety of the Uplift sub calculation. /// public double UpliftFactorOfSafety { get; private set; } /// /// Gets the z-value of the Heave sub calculation. /// public double HeaveZValue { get; private set; } /// /// Gets the factor of safety of the Heave sub calculation. /// public double HeaveFactorOfSafety { get; private set; } /// /// Gets the z-value of the Sellmeijer sub calculation. /// public double SellmeijerZValue { get; private set; } /// /// Gets the factor of safety of the Sellmeijer sub calculation. /// public double SellmeijerFactorOfSafety { get; private set; } /// /// Gets the effective stress that was calculated for the uplift sub calculation. /// public double UpliftEffectiveStress { get; private set; } /// /// Gets the gradient that was calculated for the heave sub calculation. /// public double HeaveGradient { get; private set; } /// /// Gets the creep coefficient that was calculated for the Sellmeijer sub calculation. /// public double SellmeijerCreepCoefficient { get; private set; } /// /// Gets the critical fall that was calculated for the Sellmeijer sub calculation. /// public double SellmeijerCriticalFall { get; private set; } /// /// Gets the reduced fall that was calculated for the Sellmeijer sub calculation. /// public double SellmeijerReducedFall { get; private set; } #endregion } }