Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r6674 -r6738
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 6674)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 6738)
@@ -290,7 +290,7 @@
curSpec.FailureMechanismParametersMStab.MStabParameters = new MStabParameters();
MStabParameters curStabParamas = curSpec.FailureMechanismParametersMStab.MStabParameters;
curStabParamas.SearchMethod = ConversionHelper.ConvertToSearchMethod(input.StabilityParameters.SearchMethod);
- // ToDo zant2bka: Is this a good place to set the model? Is was also read in TransferAnalysisSpecification
+ curStabParamas.IsUpliftVanRunOnlyWhenUpliftOccurs = input.StabilityParameters.IsUpliftVanRunOnlyWhenUpliftOccurs;
if (input.StabilityModelTypeSpecified)
{
curStabParamas.Model = ConversionHelper.ConvertToStabilityModelType(input.StabilityModelType);
Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/MStabParameters.cs
===================================================================
diff -u -r6404 -r6738
--- DamEngine/trunk/src/Deltares.DamEngine.Data/General/MStabParameters.cs (.../MStabParameters.cs) (revision 6404)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/MStabParameters.cs (.../MStabParameters.cs) (revision 6738)
@@ -100,12 +100,14 @@
{
Model = StabilityModelType.Bishop;
SearchMethod = StabilitySearchMethod.Grid;
+ IsUpliftVanRunOnlyWhenUpliftOccurs = true;
GridPosition = StabilityGridPosition.Right;
SlipCircleDefinition = new SlipCircleDefinition();
}
public StabilityModelType Model { get; set; }
public StabilitySearchMethod SearchMethod { get; set; }
+ public bool IsUpliftVanRunOnlyWhenUpliftOccurs { get; set; }
public string ProjectFileName { get; set; }
[Validate] public SlipCircleDefinition SlipCircleDefinition { get; set; }
@@ -116,6 +118,7 @@
{
Model = mstabParameters.Model;
SearchMethod = mstabParameters.SearchMethod;
+ IsUpliftVanRunOnlyWhenUpliftOccurs = mstabParameters.IsUpliftVanRunOnlyWhenUpliftOccurs;
GridPosition = mstabParameters.GridPosition;
ProjectFileName = mstabParameters.ProjectFileName;
Index: DamEngine/trunk/xsd/DamStabilityParameters.xsd
===================================================================
diff -u -r6195 -r6738
--- DamEngine/trunk/xsd/DamStabilityParameters.xsd (.../DamStabilityParameters.xsd) (revision 6195)
+++ DamEngine/trunk/xsd/DamStabilityParameters.xsd (.../DamStabilityParameters.xsd) (revision 6738)
@@ -10,6 +10,7 @@
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs
===================================================================
diff -u -r6717 -r6738
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6717)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapper.cs (.../MacroStabilityInwardsKernelWrapper.cs) (revision 6738)
@@ -120,7 +120,8 @@
Waternet waterNet = MacroStabilityCommonHelper.CreateWaternet(damKernelInput, plLines);
- if (FailureMechanismParametersMStab.MStabParameters.Model == StabilityModelType.UpliftVan && !upliftSituation.IsUplift)
+ if (FailureMechanismParametersMStab.MStabParameters.Model == StabilityModelType.UpliftVan
+ && !upliftSituation.IsUplift && FailureMechanismParametersMStab.MStabParameters.IsUpliftVanRunOnlyWhenUpliftOccurs)
{
return PrepareResult.NoUplift;
}
@@ -139,7 +140,8 @@
PrepareResult firstPrepareResult = MacroStabilityCommonHelper.PrepareKernel(stabilityCalculator, fileNameForCalculation);
- if (isBishopUpliftVan && upliftSituation.IsUplift && firstPrepareResult == PrepareResult.Successful)
+ if (isBishopUpliftVan && (upliftSituation.IsUplift || !FailureMechanismParametersMStab.MStabParameters.IsUpliftVanRunOnlyWhenUpliftOccurs)
+ && firstPrepareResult == PrepareResult.Successful)
{
model = StabilityModelType.UpliftVan;
FailureMechanismParametersMStab.MStabParameters.Model = model;
@@ -220,7 +222,7 @@
stabilityCalculator, out messages);
AddFileNameToLogMessages(messages, fileNameForCalculation);
- if (isBishopUpliftVan && macroStabilityOutput.UpliftSituation.IsUplift)
+ if (isBishopUpliftVan && (macroStabilityOutput.UpliftSituation.IsUplift || !FailureMechanismParametersMStab.MStabParameters.IsUpliftVanRunOnlyWhenUpliftOccurs))
{
macroStabilityKernelDataInput.Input.StabilityModel.ModelOption = StabilityModelOption.UpliftVan;
macroStabilityKernelDataInput.MStabParameters.Model = StabilityModelType.UpliftVan;
Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/InputTutorialStability2D.xml
===================================================================
diff -u -r6677 -r6738
--- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/InputTutorialStability2D.xml (.../InputTutorialStability2D.xml) (revision 6677)
+++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/TestFiles/InputTutorialStability2D.xml (.../InputTutorialStability2D.xml) (revision 6738)
@@ -5485,7 +5485,7 @@
-
+
Index: DamEngine/trunk/xsd/GenerateClasses_SourceFromCdrive.bat
===================================================================
diff -u
--- DamEngine/trunk/xsd/GenerateClasses_SourceFromCdrive.bat (revision 0)
+++ DamEngine/trunk/xsd/GenerateClasses_SourceFromCdrive.bat (revision 6738)
@@ -0,0 +1,9 @@
+REM Open Command Prompt in admin mode
+REM Go to location where xsd.exe is, e.g. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools
+
+xsd /c /l:cs /n:Deltares.DamEngine.Io.XmlInput C:\src\dam\DamEngine\trunk\xsd\DamInput.xsd
+copy DamInput.cs C:\src\dam\DamEngine\trunk\src\Deltares.DamEngine.Io\DamInput.cs
+
+xsd /c /l:cs /n:Deltares.DamEngine.Io.XmlOutput C:\src\dam\DamEngine\trunk\xsd\DamOutput.xsd
+copy DamOutput.cs C:\src\dam\DamEngine\trunk\src\Deltares.DamEngine.Io\DamOutput.cs
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs
===================================================================
diff -u -r6674 -r6738
--- DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 6674)
+++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 6738)
@@ -1035,6 +1035,8 @@
private StabilityParametersSearchMethod searchMethodField;
+ private bool isUpliftVanRunOnlyWhenUpliftOccursField;
+
private StabilityParametersBishopSearchAreaDetermination bishopSearchAreaDeterminationField;
private double bishopTangentLinesDistanceField;
@@ -1099,6 +1101,10 @@
private bool upliftVanTangentLinesDistanceFieldSpecified;
+ public StabilityParameters() {
+ this.isUpliftVanRunOnlyWhenUpliftOccursField = true;
+ }
+
///
[System.Xml.Serialization.XmlAttributeAttribute()]
public StabilityParametersSearchMethod SearchMethod {
@@ -1112,6 +1118,18 @@
///
[System.Xml.Serialization.XmlAttributeAttribute()]
+ [System.ComponentModel.DefaultValueAttribute(true)]
+ public bool IsUpliftVanRunOnlyWhenUpliftOccurs {
+ get {
+ return this.isUpliftVanRunOnlyWhenUpliftOccursField;
+ }
+ set {
+ this.isUpliftVanRunOnlyWhenUpliftOccursField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
public StabilityParametersBishopSearchAreaDetermination BishopSearchAreaDetermination {
get {
return this.bishopSearchAreaDeterminationField;
Index: DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs
===================================================================
diff -u -r6716 -r6738
--- DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 6716)
+++ DamEngine/trunk/src/Deltares.DamEngine.IntegrationTests/IntegrationTests/MacroStabilityInwardsTests.cs (.../MacroStabilityInwardsTests.cs) (revision 6738)
@@ -106,7 +106,9 @@
}
[Test]
- public void TestRunMacroStabilityTutorialDesignUpliftVan_NoUplift()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void TestRunMacroStabilityTutorialDesignUpliftVan_NoUplift(bool isUpliftVanRunOnlyWhenUpliftOccurs)
{
// Based on DAM UI tutorial for stability, for location DWP_18
const string calcDir = "TestStabInwardsUpliftVan_NoUplift";
@@ -120,22 +122,24 @@
inputString = XmlAdapter.SelectLocations(inputString, locations);
inputString = XmlAdapter.ChangeStabilityInputModel(inputString, InputStabilityModelType.UpliftVan);
- inputString = XmlAdapter.ChangeValueInXml(inputString, "SearchMethod", "CalculationGrid");
inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used
inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "IsUpliftVanRunOnlyWhenUpliftOccurs", isUpliftVanRunOnlyWhenUpliftOccurs.ToString().ToLower());
Output output = GeneralHelper.RunAfterInputValidation(inputString);
Assert.Multiple(() =>
{
Assert.That(output.Results.CalculationResults, Has.Length.EqualTo(1));
- Assert.That(output.Results.CalculationMessages, Has.Length.EqualTo(1));
+ Assert.That(output.Results.CalculationMessages, isUpliftVanRunOnlyWhenUpliftOccurs ? Has.Length.EqualTo(1) : Has.Length.EqualTo(0));
});
+
DesignResult result = output.Results.CalculationResults[0];
Assert.Multiple(() =>
{
- Assert.That(result.StabilityDesignResults.SafetyFactorSpecified, Is.False);
- // ResultMessage "No uplift"
- Assert.That(result.StabilityDesignResults.ResultMessage, Is.EqualTo("No uplift"));
+ Assert.That(result.StabilityDesignResults.SafetyFactorSpecified, isUpliftVanRunOnlyWhenUpliftOccurs ? Is.False : Is.True);
+ Assert.That(result.StabilityDesignResults.SafetyFactor,
+ isUpliftVanRunOnlyWhenUpliftOccurs ? Is.EqualTo(0.0).Within(tolerance) : Is.EqualTo(1.341).Within(tolerance));
+ Assert.That(result.StabilityDesignResults.ResultMessage, isUpliftVanRunOnlyWhenUpliftOccurs ? Is.EqualTo("No uplift") : Is.EqualTo(""));
// Check that a line is specified
Assert.That(result.StabilityDesignResults.RedesignedSurfaceLine, Is.Not.Null);
// Profile name = DWP_18.stix
@@ -149,7 +153,8 @@
{
Assert.That(upliftSituation.IsUplift, Is.EqualTo(false));
// Calculation Result
- Assert.That(ConversionHelper.ConvertToCalculationResult(result.CalculationResult), Is.EqualTo(CalculationResult.NoRun));
+ Assert.That(ConversionHelper.ConvertToCalculationResult(result.CalculationResult),
+ isUpliftVanRunOnlyWhenUpliftOccurs ? Is.EqualTo(CalculationResult.NoRun) : Is.EqualTo(CalculationResult.Succeeded));
});
}
@@ -283,7 +288,9 @@
}
[Test]
- public void TestRunMacroStabilityTutorialDesignBishopUpliftVan_NoUplift()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void TestRunMacroStabilityTutorialDesignBishopUpliftVan_NoUplift(bool isUpliftVanRunOnlyWhenUpliftOccurs)
{
// Based on DAM UI tutorial for stability, for location DWP_18
const string calcDir = "TestStabInwardsBishopUpliftVan_NoUplift";
@@ -299,6 +306,7 @@
inputString = XmlAdapter.ChangeStabilityInputModel(inputString, InputStabilityModelType.BishopUpliftVan);
inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used
inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "IsUpliftVanRunOnlyWhenUpliftOccurs", isUpliftVanRunOnlyWhenUpliftOccurs.ToString().ToLower());
Output output = GeneralHelper.RunAfterInputValidation(inputString);
Assert.Multiple(() =>
@@ -321,8 +329,10 @@
result = output.Results.CalculationResults[1].StabilityDesignResults;
Assert.Multiple(() =>
{
- Assert.That(result.SafetyFactorSpecified, Is.False);
- Assert.That(result.ResultMessage, Is.EqualTo("No uplift"));
+ Assert.That(result.SafetyFactorSpecified, isUpliftVanRunOnlyWhenUpliftOccurs ? Is.False : Is.True);
+ Assert.That(result.SafetyFactor,
+ isUpliftVanRunOnlyWhenUpliftOccurs ? Is.EqualTo(0.0).Within(tolerance) : Is.EqualTo(1.341).Within(tolerance));
+ Assert.That(result.ResultMessage, isUpliftVanRunOnlyWhenUpliftOccurs ? Is.EqualTo("No uplift") : Is.EqualTo(""));
Assert.That(result.UpliftSituation.IsUplift, Is.False);
Assert.That(result.StabilityModelType, Is.EqualTo(DesignResultStabilityDesignResultsStabilityModelType.UpliftVan));
});
@@ -331,7 +341,8 @@
Assert.Multiple(() =>
{
Assert.That(result.SafetyFactorSpecified, Is.True);
- Assert.That(result.SafetyFactor, Is.EqualTo(1.357).Within(tolerance));
+ Assert.That(result.SafetyFactor,
+ isUpliftVanRunOnlyWhenUpliftOccurs ? Is.EqualTo(1.357).Within(tolerance) : Is.EqualTo(1.341).Within(tolerance));
Assert.That(result.ResultMessage, Is.EqualTo(""));
Assert.That(result.UpliftSituation.IsUplift, Is.False);
Assert.That(result.StabilityModelType, Is.EqualTo(DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan));
@@ -340,7 +351,8 @@
{
// Calculation Result
Assert.That(ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[0].CalculationResult), Is.EqualTo(CalculationResult.Succeeded));
- Assert.That(ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[1].CalculationResult), Is.EqualTo(CalculationResult.NoRun));
+ Assert.That(ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[1].CalculationResult),
+ isUpliftVanRunOnlyWhenUpliftOccurs ? Is.EqualTo(CalculationResult.NoRun) : Is.EqualTo(CalculationResult.Succeeded));
Assert.That(ConversionHelper.ConvertToCalculationResult(output.Results.CalculationResults[2].CalculationResult), Is.EqualTo(CalculationResult.Succeeded));
});
}