// Copyright (C) Stichting Deltares 2026. All rights reserved. // // This file is part of the Dam Engine. // // The Dam Engine is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero 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 Deltares.DamEngine.Data.Geotechnics; namespace Deltares.DamEngine.Data.General.Results; public class PipingDesignResults { private readonly PipingModelType pipingModelType; public PipingDesignResults(PipingModelType aPipingModelType) { pipingModelType = aPipingModelType; } /// /// Gets or sets the result message. /// /// /// The result message. /// public string ResultMessage { get; set; } = ""; /// /// Gets or sets the safety factor. /// /// /// The safety factor. /// public double? SafetyFactor { get { switch (pipingModelType) { case PipingModelType.Bligh: return BlighFactor; case PipingModelType.Wti2017: // for wti, use the overall result, not the backward erosion result (as decided by Kin Sun) return Wti2017SafetyFactorOverall; default: return null; } } set { if (pipingModelType == PipingModelType.Bligh) { BlighFactor = value; } if (pipingModelType == PipingModelType.Wti2017) { // for wti, use the overall result, not the backward erorsion result Wti2017SafetyFactorOverall = value; } } } /// /// Gets or sets the uplift factor. /// /// /// The uplift factor. /// public double? UpliftFactor { get; set; } /// /// Gets or sets the heave factor. /// /// /// The heave factor. /// public double? HeaveFactor { get; set; } /// /// Gets or sets the bligh factor. /// /// /// The bligh factor. /// public double? BlighFactor { get; set; } /// /// Gets or sets the bligh hcritical. /// /// /// The bligh hcritical. /// public double? BlighHcritical { get; set; } /// /// Gets or sets the wti2017 safety factor for backward erosion. /// /// /// The wti2017 safety factor for backward erosion. /// public double? Wti2017BackwardErosionSafetyFactor { get; set; } /// /// Gets or sets the wti2017 safety factor for Uplift. /// /// /// The wti2017 safety factor for Uplift. /// public double? Wti2017UpliftSafetyFactor { get; set; } /// /// Gets or sets the wti2017 safety factor heave. /// /// /// The wti2017 safety factor heave. /// public double? Wti2017HeaveSafetyFactor { get; set; } /// /// Gets or sets the wti2017 safety factor overall (see MWDAM-1299). /// /// /// The wti2017 safety factor overall. /// public double? Wti2017SafetyFactorOverall { get; set; } /// /// Gets or sets the wti2017 critical waterlevel for backward erosion. /// /// /// The wti2017 hcritical backward erosion. /// public double? Wti2017BackwardErosionHcritical { get; set; } /// /// Gets or sets the wti2017 critical waterlevel for Uplift. /// /// /// The wti2017 hcritical uplift. /// public double? Wti2017UpliftHcritical { get; set; } /// /// Gets or sets the wti2017 critical waterlevel for Heave. /// /// /// The wti2017 hcritical heave. /// public double? Wti2017HeaveHcritical { get; set; } /// /// Gets or sets the wti2017 critical waterlevel overall (see MWDAM-1299). /// /// /// The wti2017 hcritical overall. /// public double? Wti2017HcriticalOverall { get; set; } /// /// Gets or sets the wti2017 delta phi c be (backward erosion, critical head difference). /// /// /// The wti2017 delta phi c be. /// public double? Wti2017BackwardErosionDeltaPhiC { get; set; } /// /// Gets or sets the wti2017 delta phi c be (backward erosion, reduced head difference). /// /// /// The wti2017 delta phi c be. /// public double? Wti2017BackwardErosionDeltaPhiReduced { get; set; } /// /// Gets or sets the wti2017 delta phi cu (Uplift, critical head difference). /// /// /// The wti2017 delta phi cu. /// public double? Wti2017UpliftDeltaPhiC { get; set; } /// /// Gets or sets the wti2017 gradient (vertical outflow gradient for Heave). /// /// /// The wti2017 gradient. /// public double? Wti2017Gradient { get; set; } /// /// Gets or sets the local exit point x. /// /// /// The local exit point x. /// public double? LocalExitPointX { get; set; } /// /// Gets or sets the effective stress (at exit point, as calculated with Wti EffectiveThicknessCalculator). /// /// /// The effective stress. /// public double? EffectiveStress { get; set; } /// /// Gets or sets the uplift situation. /// /// /// The uplift situation. /// public UpliftSituation? UpliftSituation { get; set; } /// /// Gets or sets the redesigned surface line. /// /// /// The redesigned surface line. /// public SurfaceLine2 RedesignedSurfaceLine { get; set; } /// /// Gets or sets the c creep (Creep coefficient). /// /// /// The c creep. /// public double? CCreep { get; set; } }