Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedOutput.cs
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedOutput.cs (.../WbiPipingSellmeijerRevisedOutput.cs) (revision 1919)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedOutput.cs (.../WbiPipingSellmeijerRevisedOutput.cs) (revision 1921)
@@ -48,6 +48,14 @@
public double FoSu { get; set; }
///
+ /// Gets or sets the heave safetyfactor.
+ ///
+ ///
+ /// The fo sp.
+ ///
+ public double FoSh { get; set; }
+
+ ///
/// Gets or sets the H-critical (critical head difference for piping).
///
///
@@ -64,6 +72,22 @@
public double Hcu { get; set; }
///
+ /// Gets or sets the H-critical (critical waterlevel for heave).
+ ///
+ ///
+ /// The hc.
+ ///
+ public double Hch { get; set; }
+
+ ///
+ /// Gets or sets the gradient (vertical outflow gradient for heave).
+ ///
+ ///
+ /// The gradient.
+ ///
+ public double Gradient { get; set; }
+
+ ///
/// Gets or sets the calculation result.
///
///
Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MultiCorePipingCalculationTests.cs
===================================================================
diff -u -r1818 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MultiCorePipingCalculationTests.cs (.../MultiCorePipingCalculationTests.cs) (revision 1818)
+++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MultiCorePipingCalculationTests.cs (.../MultiCorePipingCalculationTests.cs) (revision 1921)
@@ -65,6 +65,7 @@
File.WriteAllText(outputFilename, outputString, Encoding.Unicode);
// Calculate multicore
+ Debug.WriteLine("");
Debug.WriteLine("Perform multicore calculation with {0} cores Piping", multiCoreCount);
inputString = XmlAdapter.ChangeValueInXml(inputString, "MaxCalculationCores", multiCoreCount.ToString());
engineInterface = new EngineInterface(inputString);
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Results/PipingDesignResults.cs
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Results/PipingDesignResults.cs (.../PipingDesignResults.cs) (revision 1919)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Results/PipingDesignResults.cs (.../PipingDesignResults.cs) (revision 1921)
@@ -19,7 +19,6 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
-using Deltares.DamEngine.Data.Design;
using Deltares.DamEngine.Data.Geotechnics;
namespace Deltares.DamEngine.Data.General.Results
@@ -40,11 +39,17 @@
private double? wti2017SafetyFactorUplift;
private double? wti2017HcriticalUplift;
private double? wti2017DeltaPhiCu;
+ private double? wti2017SafetyFactorHeave;
+ private double? wti2017HcriticalHeave;
+ 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;
public PipingDesignResults(PipingModelType aPipingModelType)
{
@@ -295,10 +300,46 @@
}
///
+ /// Gets or sets the wti2017 safety factor heave.
+ ///
+ ///
+ /// The wti2017 safety factor heave.
+ ///
+ public double? Wti2017SafetyFactorHeave
+ {
+ get
+ {
+ return wti2017SafetyFactorHeave;
+ }
+ set
+ {
+ wti2017SafetyFactorHeave = 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 hcritical for Piping.
///
///
- /// The wti2017 hcritical.
+ /// The wti2017 hcritical piping.
///
public double? Wti2017HcriticalPiping
{
@@ -331,6 +372,42 @@
}
///
+ /// Gets or sets the wti2017 hcritical for Heave.
+ ///
+ ///
+ /// The wti2017 hcritical heave.
+ ///
+ public double? Wti2017HcriticalHeave
+ {
+ get
+ {
+ return wti2017HcriticalHeave;
+ }
+ set
+ {
+ wti2017HcriticalHeave = value;
+ }
+ }
+
+ ///
+ /// Gets or sets the wti2017 hcritical overall (see MWDAM-1299).
+ ///
+ ///
+ /// The wti2017 hcritical overall.
+ ///
+ public double? Wti2017HcriticalOverall
+ {
+ get
+ {
+ return wti2017HcriticalOverall;
+ }
+ set
+ {
+ wti2017HcriticalOverall = value;
+ }
+ }
+
+ ///
/// Gets or sets the wti2017 delta phi cu (Uplift).
///
///
@@ -349,6 +426,24 @@
}
///
+ /// 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.
///
///
@@ -367,6 +462,24 @@
}
///
+ /// 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.
///
///
Index: DamEngine/trunk/xsd/DamDesignResult.xsd
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/xsd/DamDesignResult.xsd (.../DamDesignResult.xsd) (revision 1919)
+++ DamEngine/trunk/xsd/DamDesignResult.xsd (.../DamDesignResult.xsd) (revision 1921)
@@ -52,6 +52,12 @@
+
+
+
+
+
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedInput.cs
===================================================================
diff -u -r1897 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedInput.cs (.../WbiPipingSellmeijerRevisedInput.cs) (revision 1897)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedInput.cs (.../WbiPipingSellmeijerRevisedInput.cs) (revision 1921)
@@ -30,6 +30,9 @@
///
public class WbiPipingSellmeijerRevisedInput : IKernelDataInput
{
+ // For now, Ich is just used with a default value (see MWDAM-1299)
+ private const double cIch = 0.3;
+
///
/// Gets or sets the model factor piping.
///
@@ -71,6 +74,14 @@
public double DTotal { get; set; }
///
+ /// Gets or sets the ich (critical Heave gradient).
+ ///
+ ///
+ /// The ich.
+ ///
+ public double Ich { get; set; } = cIch;
+
+ ///
/// The bottom level of the aquitard layer which is on a level above the exit point's
/// z-coordinate. A value of indicates that no such aquitard
/// layer exists.
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedKernelWrapperTests.cs
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedKernelWrapperTests.cs (.../WbiPipingSellmeijerRevisedKernelWrapperTests.cs) (revision 1919)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedKernelWrapperTests.cs (.../WbiPipingSellmeijerRevisedKernelWrapperTests.cs) (revision 1921)
@@ -126,7 +126,13 @@
Assert.AreEqual(0.56948691811077123, result.PipingDesignResults.Wti2017SafetyFactorUplift, diff);
Assert.AreEqual(0.56948691811077123, result.PipingDesignResults.Wti2017HcriticalUplift, diff);
Assert.AreEqual(0.4271151885830784, result.PipingDesignResults.Wti2017DeltaPhiCu, diff);
+ Assert.AreEqual(0.40, result.PipingDesignResults.Wti2017SafetyFactorHeave, diff);
+ Assert.AreEqual(0.40, result.PipingDesignResults.Wti2017HcriticalHeave, diff);
+ Assert.AreEqual(0.75, result.PipingDesignResults.Wti2017Gradient, diff);
+ Assert.AreEqual(90, result.PipingDesignResults.Wti2017SafetyFactorOverall, diff);
+ Assert.AreEqual(1302.6335025708217, result.PipingDesignResults.Wti2017HcriticalOverall, diff);
+
Assert.AreEqual(59.5, result.PipingDesignResults.LocalExitPointX);
Assert.AreEqual(0.88258734130293759, result.PipingDesignResults.UpliftFactor);
Assert.AreEqual(true, result.PipingDesignResults.UpliftSituation != null && ((UpliftSituation)result.PipingDesignResults.UpliftSituation).IsUplift);
@@ -273,7 +279,11 @@
CalculationResult = calculationResult,
FoSu = 5.5,
Hcu = 6.6,
- DeltaPhiCu = 7.7
+ DeltaPhiCu = 7.7,
+ FoSh = 3.4,
+ Hch = 11.1,
+ Gradient = 1.11,
+ EffectiveStress = 321.21
};
var designScenario = new DesignScenario
@@ -289,7 +299,14 @@
Assert.AreEqual(output.FoSu, result.PipingDesignResults.Wti2017SafetyFactorUplift);
Assert.AreEqual(output.Hcu, result.PipingDesignResults.Wti2017HcriticalUplift);
Assert.AreEqual(output.DeltaPhiCu, result.PipingDesignResults.Wti2017DeltaPhiCu);
+ Assert.AreEqual(output.FoSh, result.PipingDesignResults.Wti2017SafetyFactorHeave);
+ Assert.AreEqual(output.Hch, result.PipingDesignResults.Wti2017HcriticalHeave);
+ Assert.AreEqual(output.Gradient, result.PipingDesignResults.Wti2017Gradient);
+ // Decise is FoSu thus these must be overall.
+ Assert.AreEqual(output.FoSu, result.PipingDesignResults.Wti2017SafetyFactorOverall);
+ Assert.AreEqual(output.Hcu, result.PipingDesignResults.Wti2017HcriticalOverall);
+
Assert.AreEqual(output.ExitPointX, result.PipingDesignResults.LocalExitPointX);
Assert.AreEqual(output.UpliftFactor, result.PipingDesignResults.UpliftFactor);
Assert.AreEqual(output.UpliftSituation, result.PipingDesignResults.UpliftSituation);
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 1919)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 1921)
@@ -95,10 +95,16 @@
BlighHcritical = 0.4,
LocalExitPointX = 34.21,
Wti2017DeltaPhiCu = 1.09 * i,
+ EffectiveStress = 13.23 * i,
Wti2017HcriticalUplift = 1.19 * i,
Wti2017HcriticalPiping = 1.29 * i,
+ Wti2017HcriticalHeave = 1.24 * i,
Wti2017SafetyFactorPiping = 1.39 * i,
- Wti2017SafetyFactorUplift = 1.49 * i
+ Wti2017SafetyFactorUplift = 1.49 * i,
+ Wti2017SafetyFactorHeave = 1.59 * i,
+ Wti2017Gradient = 1.69 * i,
+ Wti2017HcriticalOverall = 1.79 * i,
+ Wti2017SafetyFactorOverall = 3.21 * i
};
var situation = new UpliftSituation
{
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedKernelWrapper.cs
===================================================================
diff -u -r1920 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedKernelWrapper.cs (.../WbiPipingSellmeijerRevisedKernelWrapper.cs) (revision 1920)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WbiPipingSellmeijerRevised/WbiPipingSellmeijerRevisedKernelWrapper.cs (.../WbiPipingSellmeijerRevisedKernelWrapper.cs) (revision 1921)
@@ -63,7 +63,8 @@
var damPipingOutput = new WbiPipingSellmeijerRevisedOutput()
{
FoSp = defaultMaxReturnValue,
- FoSu = defaultMaxReturnValue
+ FoSu = defaultMaxReturnValue,
+ FoSh = defaultMaxReturnValue
};
kernelDataOutput = damPipingOutput;
if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping)
@@ -94,22 +95,35 @@
public int Validate(IKernelDataInput kernelDataInput, IKernelDataOutput kernelDataOutput, out List messages)
{
var wbiPipingSellmeijerRevisedOutput = (WbiPipingSellmeijerRevisedOutput)kernelDataOutput;
- var calculatorWbiSellmeijerRevised = CreatePipingCalculatorWbiSellmeijerRevised(kernelDataInput);
- List kernelMessages = calculatorWbiSellmeijerRevised.Validate();
+ List kernelMessages = new List();
messages = new List();
+
+ // Validate the WBI Heave calculator
+ var calculatorWbiHeave = CreateWtiHeaveCalculator(kernelDataInput);
+ kernelMessages.Clear();
+ kernelMessages = calculatorWbiHeave.Validate();
foreach (string stringMessage in kernelMessages)
{
messages.Add(new LogMessage() { Message = stringMessage, MessageType = LogMessageType.Error });
}
- var calculatorWbiUplift = CreateWTIUpliftCalculator(kernelDataInput);
// Validate the WBI Uplift calculator
+ var calculatorWbiUplift = CreateWtiUpliftCalculator(kernelDataInput);
kernelMessages.Clear();
kernelMessages = calculatorWbiUplift.Validate();
foreach (string stringMessage in kernelMessages)
{
messages.Add(new LogMessage() { Message = stringMessage, MessageType = LogMessageType.Error });
}
+
+ // Validate the WBI Piping calculator
+ var calculatorWbiSellmeijerRevised = CreatePipingCalculatorWbiSellmeijerRevised(kernelDataInput);
+ kernelMessages.Clear();
+ kernelMessages = calculatorWbiSellmeijerRevised.Validate();
+ foreach (string stringMessage in kernelMessages)
+ {
+ messages.Add(new LogMessage() { Message = stringMessage, MessageType = LogMessageType.Error });
+ }
if (messages.Count > 0)
{
wbiPipingSellmeijerRevisedOutput.CalculationResult = CalculationResult.InvalidInputData;
@@ -129,12 +143,21 @@
var wbiPipingSellmeijerRevisedOutput = (WbiPipingSellmeijerRevisedOutput)kernelDataOutput;
ThrowWhenKernelInputNull(wbiPipingSellmeijerRevisedInput);
ThrowWhenKernelOutputNull(wbiPipingSellmeijerRevisedOutput);
- PerformSingleCalculationWbiUplift(out messages, wbiPipingSellmeijerRevisedOutput, wbiPipingSellmeijerRevisedInput);
- // Only when Uplift succeeded, continue with piping.
- if (messages.Count == 0)
- {
- PerformSingleCalculationWbiSellmeijerRevised(out messages, wbiPipingSellmeijerRevisedOutput, wbiPipingSellmeijerRevisedInput);
- }
+ // Initialize result as no run.
+ wbiPipingSellmeijerRevisedOutput.CalculationResult = CalculationResult.NoRun;
+ messages = new List();
+
+ List upliftMessages;
+ PerformSingleCalculationWbiUplift(out upliftMessages, wbiPipingSellmeijerRevisedOutput, wbiPipingSellmeijerRevisedInput);
+ messages.AddRange(upliftMessages);
+
+ List heaveMessages;
+ PerformSingleCalculationWbiHeave(out heaveMessages, wbiPipingSellmeijerRevisedOutput, wbiPipingSellmeijerRevisedInput);
+ messages.AddRange(heaveMessages);
+
+ List pipingMessages;
+ PerformSingleCalculationWbiSellmeijerRevised(out pipingMessages, wbiPipingSellmeijerRevisedOutput, wbiPipingSellmeijerRevisedInput);
+ messages.AddRange(pipingMessages);
}
///
@@ -172,6 +195,27 @@
pipingDesignResults.Wti2017SafetyFactorUplift = Math.Min(damPipingOutput.FoSu, defaultMaxReturnValue);
pipingDesignResults.Wti2017HcriticalUplift = damPipingOutput.Hcu;
pipingDesignResults.Wti2017DeltaPhiCu = damPipingOutput.DeltaPhiCu;
+ // Add results of the wbi-heave calculation
+ pipingDesignResults.Wti2017SafetyFactorHeave = Math.Min(damPipingOutput.FoSh, defaultMaxReturnValue); ;
+ pipingDesignResults.Wti2017HcriticalHeave = damPipingOutput.Hch;
+ pipingDesignResults.Wti2017Gradient = damPipingOutput.Gradient;
+ // Add the overall results for WBI piping kernel (FoS = highest value of FoSh, FoSu and FoSp; HcO is Hc belonging to FoS), see MWDAM-1370
+ var maxFoS = damPipingOutput.FoSp;
+ var overallHc = damPipingOutput.Hc;
+ if (damPipingOutput.FoSu > damPipingOutput.FoSp)
+ {
+ maxFoS = damPipingOutput.FoSu;
+ overallHc = damPipingOutput.Hcu;
+ }
+ if (damPipingOutput.FoSh > maxFoS)
+ {
+ maxFoS = damPipingOutput.FoSh;
+ overallHc = damPipingOutput.Hch;
+ }
+ // Make sure defaultMaxReturnValue is limit.
+ maxFoS = Math.Min(maxFoS, defaultMaxReturnValue);
+ pipingDesignResults.Wti2017SafetyFactorOverall = maxFoS;
+ pipingDesignResults.Wti2017HcriticalOverall = overallHc;
designResults.Add(designResult);
}
@@ -214,11 +258,22 @@
damPipingInput.DTotal = dCoverLayer;
double referenceLevel = Math.Max(location.PolderLevel, point.Z); // point.Z is surfacelevel
damPipingInput.HExit = referenceLevel;
+ // Initialize result as no run.
+ damPipingOutput.CalculationResult = CalculationResult.NoRun;
// Calculate the piping safety factor using the level of the given point
- PerformSingleCalculationWbiUplift(out messages, damPipingOutput, damPipingInput);
- PerformSingleCalculationWbiSellmeijerRevised(out messages, damPipingOutput, damPipingInput);
+ List upliftMessages;
+ PerformSingleCalculationWbiUplift(out upliftMessages, damPipingOutput, damPipingInput);
+ messages.AddRange(upliftMessages);
+ List heaveMessages;
+ PerformSingleCalculationWbiHeave(out heaveMessages, damPipingOutput, damPipingInput);
+ messages.AddRange(heaveMessages);
+
+ List pipingMessages;
+ PerformSingleCalculationWbiSellmeijerRevised(out pipingMessages, damPipingOutput, damPipingInput);
+ messages.AddRange(pipingMessages);
+
// If too low, then determine required height and length (from uplift)
if (damPipingOutput.FoSp < requiredFoS)
{
@@ -421,7 +476,12 @@
return calculator;
}
- private static WTIUpliftCalculator CreateWTIUpliftCalculator(IKernelDataInput kernelDataInput)
+ ///
+ /// Creates the wti uplift calculator.
+ ///
+ /// The kernel data input.
+ ///
+ private static WTIUpliftCalculator CreateWtiUpliftCalculator(IKernelDataInput kernelDataInput)
{
var wbiPipingSellmeijerRevisedInput = kernelDataInput as WbiPipingSellmeijerRevisedInput;
ThrowWhenKernelInputNull(wbiPipingSellmeijerRevisedInput);
@@ -440,6 +500,26 @@
}
///
+ /// Creates the wti heave calculator.
+ ///
+ /// The kernel data input.
+ ///
+ private static HeaveCalculator CreateWtiHeaveCalculator(IKernelDataInput kernelDataInput)
+ {
+ var wbiPipingSellmeijerRevisedInput = kernelDataInput as WbiPipingSellmeijerRevisedInput;
+ ThrowWhenKernelInputNull(wbiPipingSellmeijerRevisedInput);
+ var calculator = new HeaveCalculator
+ {
+ Ich = wbiPipingSellmeijerRevisedInput.Ich,
+ DTotal = wbiPipingSellmeijerRevisedInput.DTotal,
+ PhiExit = wbiPipingSellmeijerRevisedInput.PhiExit,
+ RExit = wbiPipingSellmeijerRevisedInput.RExit,
+ HExit = wbiPipingSellmeijerRevisedInput.HExit
+ };
+ return calculator;
+ }
+
+ ///
/// Converts the CharacteristicPointType to PipingCharacteristicPointType.
///
/// Type of the characteristic point.
@@ -540,19 +620,15 @@
private static void PerformSingleCalculationWbiSellmeijerRevised(out List messages, WbiPipingSellmeijerRevisedOutput wbiPipingOutput,
WbiPipingSellmeijerRevisedInput wbiPipingInput)
{
- wbiPipingOutput.CalculationResult = CalculationResult.NoRun;
wbiPipingOutput.FoSp = defaultMaxReturnValue;
messages = new List();
try
{
- if (wbiPipingOutput.UpliftSituation.IsUplift)
- {
- var calculator = CreatePipingCalculatorWbiSellmeijerRevised(wbiPipingInput);
- calculator.Calculate();
- wbiPipingOutput.FoSp = calculator.FoSp;
- wbiPipingOutput.Hc = calculator.Hc;
- wbiPipingOutput.CalculationResult = CalculationResult.Succeeded;
- }
+ var calculator = CreatePipingCalculatorWbiSellmeijerRevised(wbiPipingInput);
+ calculator.Calculate();
+ wbiPipingOutput.FoSp = calculator.FoSp;
+ wbiPipingOutput.Hc = calculator.Hc;
+ wbiPipingOutput.CalculationResult = CalculationResult.Succeeded;
}
catch (Exception e)
{
@@ -570,20 +646,16 @@
private static void PerformSingleCalculationWbiUplift(out List messages, WbiPipingSellmeijerRevisedOutput wbiPipingOutput,
WbiPipingSellmeijerRevisedInput wbiPipingInput)
{
- wbiPipingOutput.CalculationResult = CalculationResult.NoRun;
wbiPipingOutput.FoSu = defaultMaxReturnValue;
messages = new List();
try
{
- if (wbiPipingOutput.UpliftSituation.IsUplift)
- {
- var calculator = CreateWTIUpliftCalculator(wbiPipingInput);
- calculator.Calculate();
- wbiPipingOutput.FoSu = calculator.FoSu;
- wbiPipingOutput.Hcu = calculator.Hcu;
- wbiPipingOutput.DeltaPhiCu = calculator.DeltaPhiCu;
- wbiPipingOutput.CalculationResult = CalculationResult.Succeeded;
- }
+ var calculator = CreateWtiUpliftCalculator(wbiPipingInput);
+ calculator.Calculate();
+ wbiPipingOutput.FoSu = calculator.FoSu;
+ wbiPipingOutput.Hcu = calculator.Hcu;
+ wbiPipingOutput.DeltaPhiCu = calculator.DeltaPhiCu;
+ wbiPipingOutput.CalculationResult = CalculationResult.Succeeded;
}
catch (Exception e)
{
@@ -592,6 +664,27 @@
}
}
+ private static void PerformSingleCalculationWbiHeave(out List messages, WbiPipingSellmeijerRevisedOutput wbiPipingOutput,
+ WbiPipingSellmeijerRevisedInput wbiPipingInput)
+ {
+ wbiPipingOutput.FoSh = defaultMaxReturnValue;
+ messages = new List();
+ try
+ {
+ var calculator = CreateWtiHeaveCalculator(wbiPipingInput);
+ calculator.Calculate();
+ wbiPipingOutput.FoSh = calculator.FoSh;
+ wbiPipingOutput.Hch = calculator.Hch;
+ wbiPipingOutput.Gradient = calculator.Gradient;
+ wbiPipingOutput.CalculationResult = CalculationResult.Succeeded;
+ }
+ catch (Exception e)
+ {
+ wbiPipingOutput.CalculationResult = CalculationResult.UnexpectedError;
+ messages.Add(new LogMessage(LogMessageType.Error, null, e.Message));
+ }
+ }
+
private static void ThrowWhenKernelInputNull(WbiPipingSellmeijerRevisedInput wbiPipingInput)
{
if (wbiPipingInput == null)
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 1919)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 1921)
@@ -182,9 +182,27 @@
desResult.PipingDesignResults.Wbi2017DeltaPhiCuSpecified = designResult.PipingDesignResults.Wti2017DeltaPhiCu.HasValue;
if (designResult.PipingDesignResults.Wti2017DeltaPhiCu.HasValue) desResult.PipingDesignResults.Wbi2017DeltaPhiCu = designResult.PipingDesignResults.Wti2017DeltaPhiCu.Value;
+ desResult.PipingDesignResults.Wbi2017FactorHeaveSpecified = designResult.PipingDesignResults.Wti2017SafetyFactorHeave.HasValue;
+ if (designResult.PipingDesignResults.Wti2017SafetyFactorHeave.HasValue) desResult.PipingDesignResults.Wbi2017FactorHeave = designResult.PipingDesignResults.Wti2017SafetyFactorHeave.Value;
+
+ desResult.PipingDesignResults.Wbi2017HcriticalHeaveSpecified = designResult.PipingDesignResults.Wti2017HcriticalHeave.HasValue;
+ if (designResult.PipingDesignResults.Wti2017HcriticalHeave.HasValue) desResult.PipingDesignResults.Wbi2017HcriticalHeave = designResult.PipingDesignResults.Wti2017HcriticalHeave.Value;
+
+ desResult.PipingDesignResults.Wbi2017GradientSpecified = designResult.PipingDesignResults.Wti2017Gradient.HasValue;
+ if (designResult.PipingDesignResults.Wti2017Gradient.HasValue) desResult.PipingDesignResults.Wbi2017Gradient = designResult.PipingDesignResults.Wti2017Gradient.Value;
+
+ desResult.PipingDesignResults.Wbi2017FactorOverallSpecified = designResult.PipingDesignResults.Wti2017SafetyFactorOverall.HasValue;
+ if (designResult.PipingDesignResults.Wti2017SafetyFactorOverall.HasValue) desResult.PipingDesignResults.Wbi2017FactorOverall = designResult.PipingDesignResults.Wti2017SafetyFactorOverall.Value;
+
+ desResult.PipingDesignResults.Wbi2017HcriticalOverallSpecified = designResult.PipingDesignResults.Wti2017HcriticalOverall.HasValue;
+ if (designResult.PipingDesignResults.Wti2017HcriticalOverall.HasValue) desResult.PipingDesignResults.Wbi2017HcriticalOverall = designResult.PipingDesignResults.Wti2017HcriticalOverall.Value;
+
desResult.PipingDesignResults.ExitPointXSpecified = designResult.PipingDesignResults.LocalExitPointX.HasValue;
if (designResult.PipingDesignResults.LocalExitPointX.HasValue) desResult.PipingDesignResults.ExitPointX = designResult.PipingDesignResults.LocalExitPointX.Value;
+ desResult.PipingDesignResults.Wbi2017EffectiveStressSpecified = designResult.PipingDesignResults.EffectiveStress.HasValue;
+ if (designResult.PipingDesignResults.EffectiveStress.HasValue) desResult.PipingDesignResults.Wbi2017EffectiveStress = designResult.PipingDesignResults.EffectiveStress.Value;
+
if (designResult.PipingDesignResults.UpliftSituation.HasValue)
{
var uplift = designResult.PipingDesignResults.UpliftSituation.Value;
Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamOutput.cs
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Io/DamOutput.cs (.../DamOutput.cs) (revision 1919)
+++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamOutput.cs (.../DamOutput.cs) (revision 1921)
@@ -1764,6 +1764,30 @@
private bool wbi2017DeltaPhiCuFieldSpecified;
+ private double wbi2017FactorHeaveField;
+
+ private bool wbi2017FactorHeaveFieldSpecified;
+
+ private double wbi2017HcriticalHeaveField;
+
+ private bool wbi2017HcriticalHeaveFieldSpecified;
+
+ private double wbi2017GradientField;
+
+ private bool wbi2017GradientFieldSpecified;
+
+ private double wbi2017FactorOverallField;
+
+ private bool wbi2017FactorOverallFieldSpecified;
+
+ private double wbi2017HcriticalOverallField;
+
+ private bool wbi2017HcriticalOverallFieldSpecified;
+
+ private double wbi2017EffectiveStressField;
+
+ private bool wbi2017EffectiveStressFieldSpecified;
+
///
public UpliftSituation UpliftSituation {
get {
@@ -2102,6 +2126,138 @@
this.wbi2017DeltaPhiCuFieldSpecified = value;
}
}
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Wbi2017FactorHeave {
+ get {
+ return this.wbi2017FactorHeaveField;
+ }
+ set {
+ this.wbi2017FactorHeaveField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool Wbi2017FactorHeaveSpecified {
+ get {
+ return this.wbi2017FactorHeaveFieldSpecified;
+ }
+ set {
+ this.wbi2017FactorHeaveFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Wbi2017HcriticalHeave {
+ get {
+ return this.wbi2017HcriticalHeaveField;
+ }
+ set {
+ this.wbi2017HcriticalHeaveField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool Wbi2017HcriticalHeaveSpecified {
+ get {
+ return this.wbi2017HcriticalHeaveFieldSpecified;
+ }
+ set {
+ this.wbi2017HcriticalHeaveFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Wbi2017Gradient {
+ get {
+ return this.wbi2017GradientField;
+ }
+ set {
+ this.wbi2017GradientField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool Wbi2017GradientSpecified {
+ get {
+ return this.wbi2017GradientFieldSpecified;
+ }
+ set {
+ this.wbi2017GradientFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Wbi2017FactorOverall {
+ get {
+ return this.wbi2017FactorOverallField;
+ }
+ set {
+ this.wbi2017FactorOverallField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool Wbi2017FactorOverallSpecified {
+ get {
+ return this.wbi2017FactorOverallFieldSpecified;
+ }
+ set {
+ this.wbi2017FactorOverallFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Wbi2017HcriticalOverall {
+ get {
+ return this.wbi2017HcriticalOverallField;
+ }
+ set {
+ this.wbi2017HcriticalOverallField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool Wbi2017HcriticalOverallSpecified {
+ get {
+ return this.wbi2017HcriticalOverallFieldSpecified;
+ }
+ set {
+ this.wbi2017HcriticalOverallFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double Wbi2017EffectiveStress {
+ get {
+ return this.wbi2017EffectiveStressField;
+ }
+ set {
+ this.wbi2017EffectiveStressField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool Wbi2017EffectiveStressSpecified {
+ get {
+ return this.wbi2017EffectiveStressFieldSpecified;
+ }
+ set {
+ this.wbi2017EffectiveStressFieldSpecified = value;
+ }
+ }
}
///
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs
===================================================================
diff -u -r1919 -r1921
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1919)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1921)
@@ -214,8 +214,20 @@
if (designResult.PipingDesignResults.Wbi2017DeltaPhiCuSpecified) desResult.PipingDesignResults.Wti2017DeltaPhiCu = designResult.PipingDesignResults.Wbi2017DeltaPhiCu;
+ if (designResult.PipingDesignResults.Wbi2017FactorHeaveSpecified) desResult.PipingDesignResults.Wti2017SafetyFactorHeave = designResult.PipingDesignResults.Wbi2017FactorHeave;
+
+ if (designResult.PipingDesignResults.Wbi2017HcriticalHeaveSpecified) desResult.PipingDesignResults.Wti2017HcriticalHeave = designResult.PipingDesignResults.Wbi2017HcriticalHeave;
+
+ if (designResult.PipingDesignResults.Wbi2017GradientSpecified) desResult.PipingDesignResults.Wti2017Gradient = designResult.PipingDesignResults.Wbi2017Gradient;
+
+ if (designResult.PipingDesignResults.Wbi2017FactorOverallSpecified) desResult.PipingDesignResults.Wti2017SafetyFactorOverall = designResult.PipingDesignResults.Wbi2017FactorOverall;
+
+ if (designResult.PipingDesignResults.Wbi2017HcriticalOverallSpecified) desResult.PipingDesignResults.Wti2017HcriticalOverall = designResult.PipingDesignResults.Wbi2017HcriticalOverall;
+
if (designResult.PipingDesignResults.ExitPointXSpecified) desResult.PipingDesignResults.LocalExitPointX = designResult.PipingDesignResults.ExitPointX;
+ if (designResult.PipingDesignResults.Wbi2017EffectiveStressSpecified) desResult.PipingDesignResults.EffectiveStress = designResult.PipingDesignResults.Wbi2017EffectiveStress;
+
if (designResult.PipingDesignResults.UpliftSituation != null)
{
var uplift = designResult.PipingDesignResults.UpliftSituation;