// Copyright (C) Stichting Deltares 2019. 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 string resultMessage = "";
private double? upliftFactor;
private double? heaveFactor;
private double? blighFactor;
private double? blighHcritical;
private double? sellmeijer4ForcesFactor;
private double? sellmeijer4ForcesHcritical;
private double? sellmeijerVnkFactor;
private double? sellmeijerVnkHcritical;
private double? wti2017BackwardErosionSafetyFactor;
private double? wti2017BackwardErosionHcritical;
private double? wti2017UpliftSafetyFactor;
private double? wti2017UpliftHcritical;
private double? wti2017BackwardErosionDeltaPhiC;
private double? wti2017BackwardErosionDeltaPhiReduced;
private double? wti2017UpliftDeltaPhiC;
private double? wti2017HeaveSafetyFactor;
private double? wti2017HeaveHcritical;
private double? wti2017Gradient;
private double? wti2017SafetyFactorOverall;
private double? wti2017HcriticalOverall;
private double? localExitPointX;
private UpliftSituation? upliftSituation;
private SurfaceLine2 redesignedSurfaceLine;
private readonly PipingModelType pipingModelType;
private double? effectiveStress;
private double? cCreep;
public PipingDesignResults(PipingModelType aPipingModelType)
{
pipingModelType = aPipingModelType;
}
///
/// Gets or sets the result message.
///
///
/// The result message.
///
public string ResultMessage
{
get
{
return resultMessage;
}
set
{
resultMessage = value;
}
}
///
/// Gets or sets the safety factor.
///
///
/// The safety factor.
///
public double? SafetyFactor
{
get
{
switch (pipingModelType)
{
case PipingModelType.Bligh:
return blighFactor;
case PipingModelType.SellmeijerVnk:
return sellmeijerVnkFactor;
case PipingModelType.Sellmeijer4Forces:
return sellmeijer4ForcesFactor;
case PipingModelType.Wti2017:
// for wti, use the overall result, not the backward erorsion result (as decided by Kin Sun)
return wti2017SafetyFactorOverall;
default:
return null;
}
}
set
{
if (pipingModelType == PipingModelType.Bligh)
{
blighFactor = value;
}
if (pipingModelType == PipingModelType.SellmeijerVnk)
{
sellmeijerVnkFactor = value;
}
if (pipingModelType == PipingModelType.Sellmeijer4Forces)
{
sellmeijer4ForcesFactor = 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
{
return upliftFactor;
}
set
{
upliftFactor = value;
}
}
///
/// Gets or sets the heave factor.
///
///
/// The heave factor.
///
public double? HeaveFactor
{
get
{
return heaveFactor;
}
set
{
heaveFactor = value;
}
}
///
/// Gets or sets the bligh factor.
///
///
/// The bligh factor.
///
public double? BlighFactor
{
get
{
return blighFactor;
}
set
{
blighFactor = value;
}
}
///
/// Gets or sets the bligh hcritical.
///
///
/// The bligh hcritical.
///
public double? BlighHcritical
{
get
{
return blighHcritical;
}
set
{
blighHcritical = value;
}
}
///
/// Gets or sets the sellmeijer4 forces factor.
///
///
/// The sellmeijer4 forces factor.
///
public double? Sellmeijer4ForcesFactor
{
get
{
return sellmeijer4ForcesFactor;
}
set
{
sellmeijer4ForcesFactor = value;
}
}
///
/// Gets or sets the sellmeijer4 forces hcritical.
///
///
/// The sellmeijer4 forces hcritical.
///
public double? Sellmeijer4ForcesHcritical
{
get
{
return sellmeijer4ForcesHcritical;
}
set
{
sellmeijer4ForcesHcritical = value;
}
}
///
/// Gets or sets the sellmeijer VNK factor.
///
///
/// The sellmeijer VNK factor.
///
public double? SellmeijerVnkFactor
{
get
{
return sellmeijerVnkFactor;
}
set
{
sellmeijerVnkFactor = value;
}
}
///
/// Gets or sets the sellmeijer VNK hcritical.
///
///
/// The sellmeijer VNK hcritical.
///
public double? SellmeijerVnkHcritical
{
get
{
return sellmeijerVnkHcritical;
}
set
{
sellmeijerVnkHcritical = value;
}
}
///
/// Gets or sets the wti2017 safety factor for backward erosion.
///
///
/// The wti2017 safety factor for backward erosion.
///
public double? Wti2017BackwardErosionSafetyFactor
{
get
{
return wti2017BackwardErosionSafetyFactor;
}
set
{
wti2017BackwardErosionSafetyFactor = value;
}
}
///
/// Gets or sets the wti2017 safety factor for Uplift.
///
///
/// The wti2017 safety factor for Uplift.
///
public double? Wti2017UpliftSafetyFactor
{
get
{
return wti2017UpliftSafetyFactor;
}
set
{
wti2017UpliftSafetyFactor = value;
}
}
///
/// Gets or sets the wti2017 safety factor heave.
///
///
/// The wti2017 safety factor heave.
///
public double? Wti2017HeaveSafetyFactor
{
get
{
return wti2017HeaveSafetyFactor;
}
set
{
wti2017HeaveSafetyFactor = value;
}
}
///
/// Gets or sets the wti2017 safety factor overall (see MWDAM-1299).
///
///
/// The wti2017 safety factor overall.
///
public double? Wti2017SafetyFactorOverall
{
get
{
return wti2017SafetyFactorOverall;
}
set
{
wti2017SafetyFactorOverall = value;
}
}
///
/// Gets or sets the wti2017 critical waterlevel for backward erosion.
///
///
/// The wti2017 hcritical backward erosion.
///
public double? Wti2017BackwardErosionHcritical
{
get
{
return wti2017BackwardErosionHcritical;
}
set
{
wti2017BackwardErosionHcritical = value;
}
}
///
/// Gets or sets the wti2017 critical waterlevel for Uplift.
///
///
/// The wti2017 hcritical uplift.
///
public double? Wti2017UpliftHcritical
{
get
{
return wti2017UpliftHcritical;
}
set
{
wti2017UpliftHcritical = value;
}
}
///
/// Gets or sets the wti2017 critical waterlevel for Heave.
///
///
/// The wti2017 hcritical heave.
///
public double? Wti2017HeaveHcritical
{
get
{
return wti2017HeaveHcritical;
}
set
{
wti2017HeaveHcritical = value;
}
}
///
/// Gets or sets the wti2017 critical waterlevel overall (see MWDAM-1299).
///
///
/// The wti2017 hcritical overall.
///
public double? Wti2017HcriticalOverall
{
get
{
return wti2017HcriticalOverall;
}
set
{
wti2017HcriticalOverall = value;
}
}
///
/// Gets or sets the wti2017 delta phi c be (backward erosion, critical head difference).
///
///
/// The wti2017 delta phi c be.
///
public double? Wti2017BackwardErosionDeltaPhiC
{
get
{
return wti2017BackwardErosionDeltaPhiC;
}
set
{
wti2017BackwardErosionDeltaPhiC = value;
}
}
///
/// Gets or sets the wti2017 delta phi c be (backward erosion, reduced head difference).
///
///
/// The wti2017 delta phi c be.
///
public double? Wti2017BackwardErosionDeltaPhiReduced
{
get
{
return wti2017BackwardErosionDeltaPhiReduced;
}
set
{
wti2017BackwardErosionDeltaPhiReduced = value;
}
}
///
/// Gets or sets the wti2017 delta phi cu (Uplift, critical head difference).
///
///
/// The wti2017 delta phi cu.
///
public double? Wti2017UpliftDeltaPhiC
{
get
{
return wti2017UpliftDeltaPhiC;
}
set
{
wti2017UpliftDeltaPhiC = value;
}
}
///
/// Gets or sets the wti2017 gradient (vertical outflow gradient for Heave).
///
///
/// The wti2017 gradient.
///
public double? Wti2017Gradient
{
get
{
return wti2017Gradient;
}
set
{
wti2017Gradient = value;
}
}
///
/// Gets or sets the local exit point x.
///
///
/// The local exit point x.
///
public double? LocalExitPointX
{
get
{
return localExitPointX;
}
set
{
localExitPointX = value;
}
}
///
/// Gets or sets the effective stress (at exit point, as calculated with Wti EffectiveThicknessCalculator).
///
///
/// The effective stress.
///
public double? EffectiveStress
{
get
{
return effectiveStress;
}
set
{
effectiveStress = value;
}
}
///
/// Gets or sets the uplift situation.
///
///
/// The uplift situation.
///
public UpliftSituation? UpliftSituation
{
get
{
return upliftSituation;
}
set
{
upliftSituation = value;
}
}
///
/// Gets or sets the redesigned surface line.
///
///
/// The redesigned surface line.
///
public SurfaceLine2 RedesignedSurfaceLine
{
get
{
return redesignedSurfaceLine;
}
set
{
redesignedSurfaceLine = value;
}
}
///
/// Gets or sets the c creep (Creep coefficient).
///
///
/// The c creep.
///
public double? CCreep
{
get
{
return cCreep;
}
set
{
cCreep = value;
}
}
}
}