Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs
===================================================================
diff -u -r707 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 707)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 711)
@@ -280,6 +280,35 @@
inputLocation.DesignScenarios[j] = inputDesignScenario;
}
+ inputLocation.DikeEmbankmentMaterial = location.DikeEmbankmentMaterial;
+ if (location.StabilityOptions != null)
+ {
+ inputLocation.StabilityOptions = new LocationStabilityOptions
+ {
+ MapForSoilgeometries2D = location.StabilityOptions.MapForSoilGeometries2D,
+ ZoneType = ConversionHelper.ConvertToInputZoneType(location.StabilityOptions.StabilityZoneType),
+ ForbiddenZoneFactorSpecified = location.StabilityOptions.ForbiddenZoneFactor.HasValue
+ };
+ if (inputLocation.StabilityOptions.ForbiddenZoneFactorSpecified)
+ {
+ inputLocation.StabilityOptions.ForbiddenZoneFactor = location.StabilityOptions.ForbiddenZoneFactor.Value;
+ }
+ inputLocation.StabilityOptions.ZoneAreaRestSlopeCrestWidthSpecified = location.StabilityOptions.ZoneAreaRestSlopeCrestWidth.HasValue;
+ if (inputLocation.StabilityOptions.ZoneAreaRestSlopeCrestWidthSpecified)
+ {
+ inputLocation.StabilityOptions.ZoneAreaRestSlopeCrestWidth = location.StabilityOptions.ZoneAreaRestSlopeCrestWidth.Value;
+ }
+ inputLocation.StabilityOptions.TrafficLoadSpecified = location.StabilityOptions.TrafficLoad.HasValue;
+ if (inputLocation.StabilityOptions.TrafficLoadSpecified)
+ {
+ inputLocation.StabilityOptions.TrafficLoad = location.StabilityOptions.TrafficLoad.Value;
+ }
+ inputLocation.StabilityOptions.MinimumCircleDepthSpecified = location.StabilityOptions.MinimalCircleDepth.HasValue;
+ if (inputLocation.StabilityOptions.MinimumCircleDepthSpecified)
+ {
+ inputLocation.StabilityOptions.MinimumCircleDepth = location.StabilityOptions.MinimalCircleDepth.Value;
+ }
+ }
inputLocations[i] = inputLocation;
}
}
Index: dam engine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs
===================================================================
diff -u -r669 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs (.../Dike.cs) (revision 669)
+++ dam engine/trunk/src/Deltares.DamEngine.Data/General/Dike.cs (.../Dike.cs) (revision 711)
@@ -422,7 +422,10 @@
{
location.SoildatabaseName = this.SoilDatabaseName;
location.SoilList = this.SoilList;
- location.MapForSoilGeometries2D = this.MapForSoilGeometries2D;
+ if (location.StabilityOptions != null)
+ {
+ location.StabilityOptions.MapForSoilGeometries2D = this.MapForSoilGeometries2D;
+ }
location.Gauges.Clear();
location.Gauges.AddRange(Gauges);
Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs
===================================================================
diff -u -r631 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 631)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 711)
@@ -152,6 +152,19 @@
dike.SoilList.Add(soil);
}
+ var dikemat = new Soil
+ {
+ Name = "DikeMat",
+ AbovePhreaticLevel = 7,
+ BelowPhreaticLevel = 8,
+ DryUnitWeight = 9,
+ BeddingAngle = 18,
+ DiameterD70 = 19,
+ DiameterD90 = 20,
+ PermeabKx = 21,
+ WhitesConstant = 22
+ };
+ dike.SoilList.Add(dikemat);
}
private void FillSurfaceLines(Dike dike)
@@ -215,6 +228,16 @@
designScenario.Location = location;
location.Scenarios.Add(designScenario);
}
+ location.DikeEmbankmentMaterial = "DikeMat";
+ location.StabilityOptions = new StabilityOptions
+ {
+ MapForSoilGeometries2D = "TestMap",
+ StabilityZoneType = MStabZonesType.NoZones,
+ ForbiddenZoneFactor = 1.23,
+ ZoneAreaRestSlopeCrestWidth = 8.23,
+ TrafficLoad = 11.11,
+ MinimalCircleDepth = 1.21
+ };
dike.Locations.Add(location);
}
}
Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/General/CalculationHelper.cs
===================================================================
diff -u -r692 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/General/CalculationHelper.cs (.../CalculationHelper.cs) (revision 692)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/General/CalculationHelper.cs (.../CalculationHelper.cs) (revision 711)
@@ -114,7 +114,6 @@
SurfaceLine = location.SurfaceLine,
PLLines = plLines,
SoilProfile = location.GetMostProbableProfile(FailureMechanismSystemType.StabilityInside),
- TrafficLoad = location.TrafficLoad,
MStabParameters =
new MStabParameters
{
@@ -132,6 +131,10 @@
}
}
};
+ if (location.StabilityOptions?.TrafficLoad != null)
+ {
+ damCalculation.FailureMechanismeParamatersMStab.TrafficLoad = location.StabilityOptions.TrafficLoad.Value;
+ }
damCalculation.FailureMechanismeParamatersMStab.MStabParameters.GridPosition =
failureMechanismType == FailureMechanismSystemType.StabilityOutside ? MStabGridPosition.Left : MStabGridPosition.Right;
@@ -155,18 +158,24 @@
parameters.IsProbabilistic = mstabParameters.IsProbabilistic;
parameters.SearchMethod = mstabParameters.SearchMethod;
parameters.CalculationOptions = mstabParameters.CalculationOptions;
- parameters.CalculationOptions.MinimalCircleDepth = location.MinimalCircleDepth;
+ if (location.StabilityOptions?.MinimalCircleDepth != null)
+ {
+ parameters.CalculationOptions.MinimalCircleDepth = location.StabilityOptions.MinimalCircleDepth.Value;
+ }
parameters.ZoneAreas = new MStabZoneAreas
{
SafetyFactorZone1A = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope.Value,
SafetyFactorZone1B = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope.Value,
DikeTableHeight = location.SurfaceLine.GetDefaultDikeTableHeight().Value,
- DikeTableWidth = location.ZoneAreaRestSlopeCrestWidth,
XCoordinateDikeTopAtPolder = location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).X,
XCoordinateDikeTopAtRiver = location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X,
XCoordinateStartRestProfile = location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X
};
+ if (location.StabilityOptions?.ZoneAreaRestSlopeCrestWidth != null)
+ {
+ parameters.ZoneAreas.DikeTableWidth = location.StabilityOptions.ZoneAreaRestSlopeCrestWidth.Value;
+ }
// Slip circle definition for Uplift Van; TODO: Combine with code in StabilityCalculation
parameters.SlipCircleDefinition.Assign(mstabParameters.SlipCircleDefinition);
@@ -186,7 +195,7 @@
{
var surfaceLine = damCalculation.FailureMechanismeParamatersMStab.SurfaceLine;
double maxZoneX = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).X +
- location.ForbiddenZoneFactor * (surfaceLine.GetDikeToeInward().X - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).X);
+ location.StabilityOptions.ForbiddenZoneFactor.Value * (surfaceLine.GetDikeToeInward().X - surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder).X);
parameters.ForbiddenZone = new MStabForbiddenZone
{
IsXEntryMinUsed = false,
@@ -436,7 +445,11 @@
{
SoilProfile1D soilProfile = location.GetMostProbableProfile(FailureMechanismSystemType.StabilityInside);
soilGeometry2DName = location.GetMostProbableGeometry2DName(FailureMechanismSystemType.StabilityInside);
- string mapForSoilGeometries2D = location.MapForSoilGeometries2D;
+ string mapForSoilGeometries2D = "";
+ if (location.StabilityOptions != null)
+ {
+ mapForSoilGeometries2D = location.StabilityOptions.MapForSoilGeometries2D;
+ }
if ((soilGeometry2DName != null) && (mapForSoilGeometries2D != null))
{
soilGeometry2DName = Path.Combine(mapForSoilGeometries2D, soilGeometry2DName);
Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStability/MStabXmlDoc.cs
===================================================================
diff -u -r698 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStability/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 698)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStability/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 711)
@@ -125,13 +125,16 @@
failureMechanismeParamatersMStab.MStabParameters.ZoneAreas = new MStabZoneAreas
{
DikeTableHeight = dikeTableHeight.Value,
- DikeTableWidth = scenario.Location.ZoneAreaRestSlopeCrestWidth,
SafetyFactorZone1A = scenario.ModelFactors.RequiredSafetyFactorStabilityInnerSlope ?? requiredSafetyFactor,
SafetyFactorZone1B = scenario.ModelFactors.RequiredSafetyFactorStabilityInnerSlope ?? requiredSafetyFactor,
XCoordinateDikeTopAtPolder = dikeTopAtPolder.X,
XCoordinateDikeTopAtRiver = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X,
XCoordinateStartRestProfile = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver).X
};
+ if (scenario.Location.StabilityOptions?.ZoneAreaRestSlopeCrestWidth != null)
+ {
+ failureMechanismeParamatersMStab.MStabParameters.ZoneAreas.DikeTableWidth = scenario.Location.StabilityOptions.ZoneAreaRestSlopeCrestWidth.Value;
+ }
}
if (failureMechanismeParamatersMStab.MStabParameters.CalculationOptions.ZonesType.Equals(MStabZonesType.ForbiddenZone))
@@ -210,8 +213,13 @@
{
var dikeTopAtPolder = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder);
// Zonestype is ForbiddenZone; TODO: Combine with code in StabilityCalculator?
- double maxZoneX = dikeTopAtPolder.X +
- scenario.Location.ForbiddenZoneFactor * (surfaceLine.GetDikeToeInward().X - dikeTopAtPolder.X);
+ var zoneFactor = 1.0;
+ if (scenario.Location.StabilityOptions?.ForbiddenZoneFactor != null)
+ {
+ zoneFactor = scenario.Location.StabilityOptions.ForbiddenZoneFactor.Value;
+ }
+ double maxZoneX = dikeTopAtPolder.X + zoneFactor *
+ (surfaceLine.GetDikeToeInward().X - dikeTopAtPolder.X);
return new MStabForbiddenZone
{
IsXEntryMinUsed = false,
Index: dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs
===================================================================
diff -u -r707 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 707)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 711)
@@ -449,5 +449,50 @@
};
return translationTable[inputAnalysisType];
}
+
+ ///
+ /// The input zone type no zones
+ ///
+ public const int InputZoneTypeNoZones = 0;
+ ///
+ /// The input zone type zone areas
+ ///
+ public const int InputZoneTypeZoneAreas = 1;
+ ///
+ /// The input zone types forbidden zones
+ ///
+ public const int InputZoneTypesForbiddenZones = 2;
+
+ ///
+ /// Converts the type of to input zone.
+ ///
+ /// Type of the zone.
+ ///
+ public static int ConvertToInputZoneType(MStabZonesType zoneType)
+ {
+ var translationTable = new Dictionary()
+ {
+ {MStabZonesType.NoZones, InputZoneTypeNoZones},
+ {MStabZonesType.ZoneAreas, InputZoneTypeZoneAreas},
+ {MStabZonesType.ForbiddenZone, InputZoneTypesForbiddenZones}
+ };
+ return translationTable[zoneType];
+ }
+
+ ///
+ /// Converts the type of to zone.
+ ///
+ /// Type of the input zone.
+ ///
+ public static MStabZonesType ConvertToZoneType(int inputZoneType)
+ {
+ var translationTable = new Dictionary ()
+ {
+ {InputZoneTypeNoZones, MStabZonesType.NoZones},
+ {InputZoneTypeZoneAreas, MStabZonesType.ZoneAreas},
+ {InputZoneTypesForbiddenZones, MStabZonesType.ForbiddenZone}
+ };
+ return translationTable[inputZoneType];
+ }
}
}
\ No newline at end of file
Index: dam engine/trunk/src/Deltares.DamEngine.Io/DamInput.cs
===================================================================
diff -u -r689 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 689)
+++ dam engine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 711)
@@ -35,6 +35,8 @@
private SoilProfile2D[] soilProfiles2DField;
+ private StabilityParameters stabilityParametersField;
+
private InputDamProjectType damProjectTypeField;
private int failureMechanismSystemTypeField;
@@ -118,6 +120,16 @@
}
///
+ public StabilityParameters StabilityParameters {
+ get {
+ return this.stabilityParametersField;
+ }
+ set {
+ this.stabilityParametersField = value;
+ }
+ }
+
+ ///
[System.Xml.Serialization.XmlAttributeAttribute()]
public InputDamProjectType DamProjectType {
get {
@@ -237,6 +249,8 @@
private string nameField;
+ private string dikeEmbankmentMaterialField;
+
///
public LocationAssesmentRegionalOptions AssesmentRegionalOptions {
get {
@@ -360,6 +374,17 @@
this.nameField = value;
}
}
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string DikeEmbankmentMaterial {
+ get {
+ return this.dikeEmbankmentMaterialField;
+ }
+ set {
+ this.dikeEmbankmentMaterialField = value;
+ }
+ }
}
///
@@ -483,6 +508,404 @@
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class StabilityParameters {
+
+ private int searchMethodField;
+
+ private int determinationGridField;
+
+ private int definitionTangentLinesField;
+
+ private bool definitionTangentLinesFieldSpecified;
+
+ private double distanceTangentLinesField;
+
+ private bool distanceTangentLinesFieldSpecified;
+
+ private int bishopNumberOfVerticalPointsGridField;
+
+ private bool bishopNumberOfVerticalPointsGridFieldSpecified;
+
+ private double bishopDistanceOfVerticalPointsGridField;
+
+ private bool bishopDistanceOfVerticalPointsGridFieldSpecified;
+
+ private int bishopNumberOfHorizontalPointsGridField;
+
+ private bool bishopNumberOfHorizontalPointsGridFieldSpecified;
+
+ private double bishopDistanceOfHorizontalPointsGridField;
+
+ private bool bishopDistanceOfHorizontalPointsGridFieldSpecified;
+
+ private int upliftVanNumberOfVerticalPointsGridLeftField;
+
+ private bool upliftVanNumberOfVerticalPointsGridLeftFieldSpecified;
+
+ private double upliftVanDistanceOfVerticalPointsGridLeftField;
+
+ private bool upliftVanDistanceOfVerticalPointsGridLeftFieldSpecified;
+
+ private int upliftVanNumberOfHorizontalPointsGridLeftField;
+
+ private bool upliftVanNumberOfHorizontalPointsGridLeftFieldSpecified;
+
+ private double upliftVanDistanceOfHorizontalPointsGridLeftField;
+
+ private bool upliftVanDistanceOfHorizontalPointsGridLeftFieldSpecified;
+
+ private int upliftVanNumberOfVerticalPointsGridRightField;
+
+ private bool upliftVanNumberOfVerticalPointsGridRightFieldSpecified;
+
+ private double upliftVanDistanceOfVerticalPointsGridRightField;
+
+ private bool upliftVanDistanceOfVerticalPointsGridRightFieldSpecified;
+
+ private int upliftVanNumberOfHorizontalPointsGridRightField;
+
+ private bool upliftVanNumberOfHorizontalPointsGridRightFieldSpecified;
+
+ private double upliftVanDistanceOfHorizontalPointsGridRightField;
+
+ private bool upliftVanDistanceOfHorizontalPointsGridRightFieldSpecified;
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int SearchMethod {
+ get {
+ return this.searchMethodField;
+ }
+ set {
+ this.searchMethodField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int DeterminationGrid {
+ get {
+ return this.determinationGridField;
+ }
+ set {
+ this.determinationGridField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int DefinitionTangentLines {
+ get {
+ return this.definitionTangentLinesField;
+ }
+ set {
+ this.definitionTangentLinesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool DefinitionTangentLinesSpecified {
+ get {
+ return this.definitionTangentLinesFieldSpecified;
+ }
+ set {
+ this.definitionTangentLinesFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double DistanceTangentLines {
+ get {
+ return this.distanceTangentLinesField;
+ }
+ set {
+ this.distanceTangentLinesField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool DistanceTangentLinesSpecified {
+ get {
+ return this.distanceTangentLinesFieldSpecified;
+ }
+ set {
+ this.distanceTangentLinesFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int BishopNumberOfVerticalPointsGrid {
+ get {
+ return this.bishopNumberOfVerticalPointsGridField;
+ }
+ set {
+ this.bishopNumberOfVerticalPointsGridField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool BishopNumberOfVerticalPointsGridSpecified {
+ get {
+ return this.bishopNumberOfVerticalPointsGridFieldSpecified;
+ }
+ set {
+ this.bishopNumberOfVerticalPointsGridFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double BishopDistanceOfVerticalPointsGrid {
+ get {
+ return this.bishopDistanceOfVerticalPointsGridField;
+ }
+ set {
+ this.bishopDistanceOfVerticalPointsGridField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool BishopDistanceOfVerticalPointsGridSpecified {
+ get {
+ return this.bishopDistanceOfVerticalPointsGridFieldSpecified;
+ }
+ set {
+ this.bishopDistanceOfVerticalPointsGridFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int BishopNumberOfHorizontalPointsGrid {
+ get {
+ return this.bishopNumberOfHorizontalPointsGridField;
+ }
+ set {
+ this.bishopNumberOfHorizontalPointsGridField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool BishopNumberOfHorizontalPointsGridSpecified {
+ get {
+ return this.bishopNumberOfHorizontalPointsGridFieldSpecified;
+ }
+ set {
+ this.bishopNumberOfHorizontalPointsGridFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double BishopDistanceOfHorizontalPointsGrid {
+ get {
+ return this.bishopDistanceOfHorizontalPointsGridField;
+ }
+ set {
+ this.bishopDistanceOfHorizontalPointsGridField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool BishopDistanceOfHorizontalPointsGridSpecified {
+ get {
+ return this.bishopDistanceOfHorizontalPointsGridFieldSpecified;
+ }
+ set {
+ this.bishopDistanceOfHorizontalPointsGridFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int UpliftVanNumberOfVerticalPointsGridLeft {
+ get {
+ return this.upliftVanNumberOfVerticalPointsGridLeftField;
+ }
+ set {
+ this.upliftVanNumberOfVerticalPointsGridLeftField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanNumberOfVerticalPointsGridLeftSpecified {
+ get {
+ return this.upliftVanNumberOfVerticalPointsGridLeftFieldSpecified;
+ }
+ set {
+ this.upliftVanNumberOfVerticalPointsGridLeftFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double UpliftVanDistanceOfVerticalPointsGridLeft {
+ get {
+ return this.upliftVanDistanceOfVerticalPointsGridLeftField;
+ }
+ set {
+ this.upliftVanDistanceOfVerticalPointsGridLeftField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanDistanceOfVerticalPointsGridLeftSpecified {
+ get {
+ return this.upliftVanDistanceOfVerticalPointsGridLeftFieldSpecified;
+ }
+ set {
+ this.upliftVanDistanceOfVerticalPointsGridLeftFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int UpliftVanNumberOfHorizontalPointsGridLeft {
+ get {
+ return this.upliftVanNumberOfHorizontalPointsGridLeftField;
+ }
+ set {
+ this.upliftVanNumberOfHorizontalPointsGridLeftField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanNumberOfHorizontalPointsGridLeftSpecified {
+ get {
+ return this.upliftVanNumberOfHorizontalPointsGridLeftFieldSpecified;
+ }
+ set {
+ this.upliftVanNumberOfHorizontalPointsGridLeftFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double UpliftVanDistanceOfHorizontalPointsGridLeft {
+ get {
+ return this.upliftVanDistanceOfHorizontalPointsGridLeftField;
+ }
+ set {
+ this.upliftVanDistanceOfHorizontalPointsGridLeftField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanDistanceOfHorizontalPointsGridLeftSpecified {
+ get {
+ return this.upliftVanDistanceOfHorizontalPointsGridLeftFieldSpecified;
+ }
+ set {
+ this.upliftVanDistanceOfHorizontalPointsGridLeftFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int UpliftVanNumberOfVerticalPointsGridRight {
+ get {
+ return this.upliftVanNumberOfVerticalPointsGridRightField;
+ }
+ set {
+ this.upliftVanNumberOfVerticalPointsGridRightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanNumberOfVerticalPointsGridRightSpecified {
+ get {
+ return this.upliftVanNumberOfVerticalPointsGridRightFieldSpecified;
+ }
+ set {
+ this.upliftVanNumberOfVerticalPointsGridRightFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double UpliftVanDistanceOfVerticalPointsGridRight {
+ get {
+ return this.upliftVanDistanceOfVerticalPointsGridRightField;
+ }
+ set {
+ this.upliftVanDistanceOfVerticalPointsGridRightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanDistanceOfVerticalPointsGridRightSpecified {
+ get {
+ return this.upliftVanDistanceOfVerticalPointsGridRightFieldSpecified;
+ }
+ set {
+ this.upliftVanDistanceOfVerticalPointsGridRightFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public int UpliftVanNumberOfHorizontalPointsGridRight {
+ get {
+ return this.upliftVanNumberOfHorizontalPointsGridRightField;
+ }
+ set {
+ this.upliftVanNumberOfHorizontalPointsGridRightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanNumberOfHorizontalPointsGridRightSpecified {
+ get {
+ return this.upliftVanNumberOfHorizontalPointsGridRightFieldSpecified;
+ }
+ set {
+ this.upliftVanNumberOfHorizontalPointsGridRightFieldSpecified = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public double UpliftVanDistanceOfHorizontalPointsGridRight {
+ get {
+ return this.upliftVanDistanceOfHorizontalPointsGridRightField;
+ }
+ set {
+ this.upliftVanDistanceOfHorizontalPointsGridRightField = value;
+ }
+ }
+
+ ///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool UpliftVanDistanceOfHorizontalPointsGridRightSpecified {
+ get {
+ return this.upliftVanDistanceOfHorizontalPointsGridRightFieldSpecified;
+ }
+ set {
+ this.upliftVanDistanceOfHorizontalPointsGridRightFieldSpecified = value;
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class SoilProfile2D {
private SoilProfile2DLayer2D[] layers2DField;
@@ -2798,12 +3221,12 @@
private double forbiddenZoneFactorField;
+ private bool forbiddenZoneFactorFieldSpecified;
+
private double zoneAreaRestSlopeCrestWidthField;
private bool zoneAreaRestSlopeCrestWidthFieldSpecified;
- private string dikeEmbankmentMaterialField;
-
private double trafficLoadField;
private bool trafficLoadFieldSpecified;
@@ -2812,10 +3235,6 @@
private bool minimumCircleDepthFieldSpecified;
- public LocationStabilityOptions() {
- this.forbiddenZoneFactorField = 1D;
- }
-
///
[System.Xml.Serialization.XmlAttributeAttribute()]
public string MapForSoilgeometries2D {
@@ -2840,7 +3259,6 @@
///
[System.Xml.Serialization.XmlAttributeAttribute()]
- [System.ComponentModel.DefaultValueAttribute(1D)]
public double ForbiddenZoneFactor {
get {
return this.forbiddenZoneFactorField;
@@ -2851,6 +3269,17 @@
}
///
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool ForbiddenZoneFactorSpecified {
+ get {
+ return this.forbiddenZoneFactorFieldSpecified;
+ }
+ set {
+ this.forbiddenZoneFactorFieldSpecified = value;
+ }
+ }
+
+ ///
[System.Xml.Serialization.XmlAttributeAttribute()]
public double ZoneAreaRestSlopeCrestWidth {
get {
@@ -2874,17 +3303,6 @@
///
[System.Xml.Serialization.XmlAttributeAttribute()]
- public string DikeEmbankmentMaterial {
- get {
- return this.dikeEmbankmentMaterialField;
- }
- set {
- this.dikeEmbankmentMaterialField = value;
- }
- }
-
- ///
- [System.Xml.Serialization.XmlAttributeAttribute()]
public double TrafficLoad {
get {
return this.trafficLoadField;
Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs
===================================================================
diff -u -r669 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 669)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 711)
@@ -215,7 +215,41 @@
[TestCase(FailureMechanismSystemType.HorizontalBalance, 3)]
public void CanConvertToFailureMechanismSystemType(int inputFailureMechanismSystemType, FailureMechanismSystemType failureMechanismSystemType)
{
- Assert.AreEqual(inputFailureMechanismSystemType, ConversionHelper.ConvertToInputFailureMechanismSystemType(failureMechanismSystemType));
+ Assert.AreEqual(failureMechanismSystemType, ConversionHelper.ConvertToFailureMechanismSystemType(inputFailureMechanismSystemType));
}
+
+ [Test]
+ [TestCase(InputAnalysisType.AdaptGeometry, AnalysisType.AdaptGeometry)]
+ [TestCase(InputAnalysisType.NoAdaption, AnalysisType.NoAdaption)]
+ public void CanConvertToInputAnalysisType(AnalysisType analysisType, InputAnalysisType inputAnalysisType)
+ {
+ Assert.AreEqual(inputAnalysisType, ConversionHelper.ConvertToInputAnalysisType(analysisType));
+ }
+
+ [Test]
+ [TestCase(AnalysisType.AdaptGeometry, InputAnalysisType.AdaptGeometry)]
+ [TestCase(AnalysisType.NoAdaption, InputAnalysisType.NoAdaption)]
+ public void CanConvertToAnalysisType(InputAnalysisType inputAnalysisType, AnalysisType analysisType)
+ {
+ Assert.AreEqual(analysisType, ConversionHelper.ConvertToAnalysisType(inputAnalysisType));
+ }
+
+ [Test]
+ [TestCase(MStabZonesType.NoZones, ConversionHelper.InputZoneTypeNoZones)]
+ [TestCase(MStabZonesType.ZoneAreas, ConversionHelper.InputZoneTypeZoneAreas)]
+ [TestCase(MStabZonesType.ForbiddenZone, ConversionHelper.InputZoneTypesForbiddenZones)]
+ public void CanConvertToInputZoneType(MStabZonesType zoneType, int inputZoneType)
+ {
+ Assert.AreEqual(inputZoneType, ConversionHelper.ConvertToInputZoneType(zoneType));
+ }
+
+ [Test]
+ [TestCase(ConversionHelper.InputZoneTypeNoZones, MStabZonesType.NoZones)]
+ [TestCase(ConversionHelper.InputZoneTypeZoneAreas, MStabZonesType.ZoneAreas)]
+ [TestCase(ConversionHelper.InputZoneTypesForbiddenZones, MStabZonesType.ForbiddenZone)]
+ public void CanConvertToZoneType(int inputZoneType, MStabZonesType zoneType)
+ {
+ Assert.AreEqual(zoneType, ConversionHelper.ConvertToZoneType(inputZoneType));
+ }
}
}
Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/General/DamProjectCalculator.cs
===================================================================
diff -u -r670 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/General/DamProjectCalculator.cs (.../DamProjectCalculator.cs) (revision 670)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/General/DamProjectCalculator.cs (.../DamProjectCalculator.cs) (revision 711)
@@ -780,7 +780,11 @@
var plLinesCreator = new PLLinesCreator();
// Determine geometry type
SoilProfileType soilProfileType = soilProfileProbability.SoilProfileType;
- string mapForSoilGeometries2D = location.MapForSoilGeometries2D;
+ string mapForSoilGeometries2D = "";
+ if (location.StabilityOptions != null)
+ {
+ mapForSoilGeometries2D = location.StabilityOptions.MapForSoilGeometries2D;
+ }
SoilProfile1D soilProfile = soilProfileProbability.SoilProfile1D;
string soilGeometry2DName = soilProfileProbability.StiFileName;
if ((soilProfileProbability.StiFileName != null) && (mapForSoilGeometries2D != null))
Index: dam engine/trunk/src/Deltares.DamEngine.Data/General/Location.cs
===================================================================
diff -u -r599 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 599)
+++ dam engine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 711)
@@ -59,7 +59,7 @@
private SoilType dikeMaterialType = SoilType.Clay;
private double dikeTableHeight = 0.0;
private double dredgingDepth = 0;
- private double forbiddenZoneFactor = 1.0;
+
private IList gaugePLLines = new List();
private IList gauges = new List();
private double? headPL2 = null;
@@ -73,8 +73,8 @@
private double levelReductionOutside = 0;
private PL1Line localXZPL1Line;
private GeometryPoint localXZSheetPilePoint;
- private string mapForSoilGeometries2D = "";
- private double minimalCircleDepth = 0;
+
+ private StabilityOptions stabilityOptions;
private ModelFactors modelFactors = new ModelFactors();
private string name = "";
private double newDepthDitch = 1.0;
@@ -117,10 +117,8 @@
private double stabilityShoulderGrowDeltaX = 2.0;
private double stabilityShoulderGrowSlope = 1.0/3;
private double stabilitySlopeAdaptionDeltaX = 2.0;
- private MStabZonesType stabilityZoneType = MStabZonesType.NoZones;
-
+
private string surfaceLineId = "";
- private double trafficLoad = 0;
private bool useNewDikeSlopeInside;
private bool useNewDikeSlopeOutside;
private bool useNewDikeTopWidth;
@@ -133,8 +131,7 @@
private double xSoilGeometry2DOrigin = 0;
private double xrd = 0;
private double yrd = 0;
- private double zoneAreaRestSlopeCrestWidth = 3.0;
-
+
private double? plLineOffsetFactorBelowShoulderCrest;
private double? plLineOffsetBelowDikeCrestMiddle;
private double? plLineOffsetDryFactorBelowShoulderCrest;
@@ -262,18 +259,6 @@
}
}
- public virtual double TrafficLoad
- {
- get
- {
- return trafficLoad;
- }
- set
- {
- trafficLoad = value;
- }
- }
-
public virtual double DredgingDepth
{
get
@@ -440,21 +425,6 @@
}
}
- ///
- ///
- ///
- public virtual double MinimalCircleDepth
- {
- get
- {
- return minimalCircleDepth;
- }
- set
- {
- minimalCircleDepth = value;
- }
- }
-
public virtual double LevelReductionInside
{
get
@@ -614,17 +584,7 @@
public SoilList SoilList { get; set; }
- public string MapForSoilGeometries2D
- {
- get
- {
- return mapForSoilGeometries2D;
- }
- set
- {
- mapForSoilGeometries2D = value;
- }
- }
+
public virtual IList Gauges
{
@@ -972,42 +932,17 @@
#region IGeographic Members
- public MStabZonesType StabilityZoneType
+ public StabilityOptions StabilityOptions
{
get
{
- return stabilityZoneType;
+ return stabilityOptions;
}
set
{
- stabilityZoneType = value;
+ stabilityOptions = value;
}
}
-
- public double ForbiddenZoneFactor
- {
- get
- {
- return forbiddenZoneFactor;
- }
- set
- {
- forbiddenZoneFactor = value;
- }
- }
-
- public double ZoneAreaRestSlopeCrestWidth
- {
- get
- {
- return zoneAreaRestSlopeCrestWidth;
- }
- set
- {
- zoneAreaRestSlopeCrestWidth = value;
- }
- }
-
public double X
{
get
@@ -1054,7 +989,7 @@
[Validate]
public ValidationResult[] IsRequiredSafetySetForZoneTypeArea()
{
- if (stabilityZoneType == MStabZonesType.ZoneAreas)
+ if (stabilityOptions != null && stabilityOptions.StabilityZoneType == MStabZonesType.ZoneAreas)
{
// For design projects, the safetey must be defined per scenario, not per location
if (DamProjectType == DamProjectType.Design && scenarios != null && scenarios.Count > 0)
@@ -1802,25 +1737,6 @@
#endregion
- ///
- /// Sets the default values; taking into account which DamProjectType and DamType is set
- ///
- /// Type of the dam.
- /// Type of the dam project.
- // TODO fix hiding parameter (e.g. use field instead of parameter)
- // TODO possibly set this when setting a damType and damProjectType for this location
- public void SetDefaultValues(DamType damType, DamProjectType damProjectType)
- {
- if ((damType == DamType.Regional) && (damProjectType == DamProjectType.Assessment))
- {
- zoneAreaRestSlopeCrestWidth = 1.5;
- }
- else
- {
- zoneAreaRestSlopeCrestWidth = 3.0;
- }
- }
-
[Validate]
public ValidationResult[] AscendingLocalXZSurfaceLine()
{
Index: dam engine/trunk/src/Deltares.DamEngine.Data/Deltares.DamEngine.Data.csproj
===================================================================
diff -u -r686 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Data/Deltares.DamEngine.Data.csproj (.../Deltares.DamEngine.Data.csproj) (revision 686)
+++ dam engine/trunk/src/Deltares.DamEngine.Data/Deltares.DamEngine.Data.csproj (.../Deltares.DamEngine.Data.csproj) (revision 711)
@@ -99,6 +99,7 @@
+
Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r710 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 710)
+++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 711)
@@ -166,8 +166,7 @@
foreach (var designScenario in location.Scenarios)
{
designScenario.Location = location;
- }
-
+ }
}
}
@@ -281,9 +280,33 @@
designScenario.RequiredSafetyFactorPiping = (inputLocationDesignScenario.RequiredSafetyFactorPipingSpecified ? (double?)inputLocationDesignScenario.RequiredSafetyFactorPiping : null);
location.Scenarios.Add(designScenario);
+ }
+ }
+ location.DikeEmbankmentMaterial = inputLocation.DikeEmbankmentMaterial;
+ if (inputLocation.StabilityOptions != null)
+ {
+ location.StabilityOptions = new StabilityOptions
+ {
+ MapForSoilGeometries2D = inputLocation.StabilityOptions.MapForSoilgeometries2D,
+ StabilityZoneType = ConversionHelper.ConvertToZoneType(inputLocation.StabilityOptions.ZoneType)
+ };
+ if (inputLocation.StabilityOptions.ForbiddenZoneFactorSpecified)
+ {
+ location.StabilityOptions.ForbiddenZoneFactor = inputLocation.StabilityOptions.ForbiddenZoneFactor;
}
+ if (inputLocation.StabilityOptions.ZoneAreaRestSlopeCrestWidthSpecified)
+ {
+ location.StabilityOptions.ZoneAreaRestSlopeCrestWidth = inputLocation.StabilityOptions.ZoneAreaRestSlopeCrestWidth;
+ }
+ if (inputLocation.StabilityOptions.TrafficLoadSpecified)
+ {
+ location.StabilityOptions.TrafficLoad = inputLocation.StabilityOptions.TrafficLoad;
+ }
+ if (inputLocation.StabilityOptions.MinimumCircleDepthSpecified)
+ {
+ location.StabilityOptions.MinimalCircleDepth = inputLocation.StabilityOptions.MinimumCircleDepth;
+ }
}
-
dikeLocations.Add(location);
}
}
Index: dam engine/trunk/src/Deltares.DamEngine.Data/General/StabilityOptions.cs
===================================================================
diff -u
--- dam engine/trunk/src/Deltares.DamEngine.Data/General/StabilityOptions.cs (revision 0)
+++ dam engine/trunk/src/Deltares.DamEngine.Data/General/StabilityOptions.cs (revision 711)
@@ -0,0 +1,147 @@
+// Copyright (C) Stichting Deltares 2017. 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 System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Deltares.DamEngine.Data.General
+{
+ public class StabilityOptions
+ {
+ private double? forbiddenZoneFactor = 1.0;
+ private double? zoneAreaRestSlopeCrestWidth = 3.0;
+ private double? minimalCircleDepth = 0;
+ private double? trafficLoad = 0;
+
+ ///
+ /// Gets or sets the map for soilgeometries2d (sti-files).
+ ///
+ ///
+ /// The map for soilgeometries2d.
+ ///
+ public string MapForSoilGeometries2D { get; set; } = "";
+
+ ///
+ /// Gets or sets the type of the stability zone.
+ ///
+ ///
+ /// The type of the stability zone.
+ ///
+ public MStabZonesType StabilityZoneType { get; set; } = MStabZonesType.NoZones;
+
+ ///
+ /// Gets or sets the forbidden zone factor.
+ ///
+ ///
+ /// The forbidden zone factor.
+ ///
+ public double? ForbiddenZoneFactor
+ {
+ get
+ {
+ return forbiddenZoneFactor;
+ }
+ set
+ {
+ forbiddenZoneFactor = value;
+ }
+ }
+
+ ///
+ /// Gets or sets the width of the zone area rest slope crest.
+ ///
+ ///
+ /// The width of the zone area rest slope crest.
+ ///
+ public double? ZoneAreaRestSlopeCrestWidth
+ {
+ get
+ {
+ return zoneAreaRestSlopeCrestWidth;
+ }
+ set
+ {
+ zoneAreaRestSlopeCrestWidth = value;
+ }
+ }
+
+ ///
+ /// Gets or sets the traffic load.
+ ///
+ ///
+ /// The traffic load.
+ ///
+ public double? TrafficLoad
+
+ {
+ get
+ {
+ return trafficLoad;
+ }
+ set
+ {
+ trafficLoad = value;
+ }
+ }
+
+ ///
+ /// Gets or sets the minimal circle depth.
+ ///
+ ///
+ /// The minimal circle depth.
+ ///
+ public double? MinimalCircleDepth
+ {
+ get
+ {
+ return minimalCircleDepth;
+ }
+ set
+ {
+ minimalCircleDepth = value;
+ }
+ }
+
+ ///
+ /// Sets the default values; taking into account which DamProjectType and DamType is set
+ ///
+ /// Type of the dam.
+ /// Type of the dam project.
+ // TODO fix hiding parameter (e.g. use field instead of parameter)
+ // TODO possibly set this when setting a damType and damProjectType for this location
+ public void SetDefaultValues(DamType damType, DamProjectType damProjectType)
+ {
+ if ((damType == DamType.Regional) && (damProjectType == DamProjectType.Assessment))
+ {
+ zoneAreaRestSlopeCrestWidth = 1.5;
+ }
+ else
+ {
+ zoneAreaRestSlopeCrestWidth = 3.0;
+ }
+ }
+ }
+
+
+}
Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/Stability/StabilityCalculator.cs
===================================================================
diff -u -r683 -r711
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/Stability/StabilityCalculator.cs (.../StabilityCalculator.cs) (revision 683)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/Stability/StabilityCalculator.cs (.../StabilityCalculator.cs) (revision 711)
@@ -159,7 +159,11 @@
else
{
plLineCreator.SoilProfileType = SoilProfileType.ProfileType2D;
- string mapForSoilGeometries2D = location.MapForSoilGeometries2D;
+ string mapForSoilGeometries2D = "";
+ if (location.StabilityOptions != null)
+ {
+ mapForSoilGeometries2D = location.StabilityOptions.MapForSoilGeometries2D;
+ }
soilGeometry2DName = Path.Combine(Path.Combine(DamProjectData.ProjectMap, mapForSoilGeometries2D), soilGeometry2DName);
plLineCreator.SoilGeometry2DName = soilGeometry2DName;
plLineCreator.SoilList = this.SoilList;