// 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; }
}