Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs =================================================================== diff -u -r1686 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 1686) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Location.cs (.../Location.cs) (revision 1933) @@ -1126,6 +1126,14 @@ #region PlLine creation parameters /// + /// Gets or sets the dike soil scenario. + /// + /// + /// The dike soil scenario. + /// + public DikeSoilScenario DikeSoilScenario { get; set; } + + /// /// Gets or sets the head pl 2. /// /// Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs =================================================================== diff -u -r1632 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1632) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1933) @@ -430,6 +430,7 @@ location.HeadPl2 = 1.0 * i + 0.28; location.HeadPl3 = 1.0 * i + 0.29; location.HeadPl4 = 1.0 * i + 0.30; + location.DikeSoilScenario = (DikeSoilScenario)i; // Used for regional assessment location.DikeTableHeight = 1.0 * i + 0.31; location.BoezemLevelHbp = 1.0 * i + 0.32; Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs =================================================================== diff -u -r1723 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 1723) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/ConversionHelper.cs (.../ConversionHelper.cs) (revision 1933) @@ -1481,5 +1481,38 @@ }; return translationTable[dataSourceTypeSensors]; } + + /// + /// Converts to DikeSoilScenario type. + /// + /// Theinput DikeSoilScenario type. + /// + public static DikeSoilScenario ConvertToDikeSoilScenario(LocationWaternetOptionsDikeSoilScenario waternetOptionsDikeSoilScenario) + { + var translationTable = new Dictionary() + { + {LocationWaternetOptionsDikeSoilScenario.ClayDikeOnClay, DikeSoilScenario.ClayDikeOnClay}, + {LocationWaternetOptionsDikeSoilScenario.ClayDikeOnSand, DikeSoilScenario.ClayDikeOnSand}, + {LocationWaternetOptionsDikeSoilScenario.SandDikeOnClay, DikeSoilScenario.SandDikeOnClay}, + {LocationWaternetOptionsDikeSoilScenario.SandDikeOnSand, DikeSoilScenario.SandDikeOnSand} + }; + return translationTable[waternetOptionsDikeSoilScenario]; + } + /// + /// Converts to input DikeSoilScenario type. + /// + /// The DikeSoilScenario type. + /// + public static LocationWaternetOptionsDikeSoilScenario ConvertToInputDikeSoilScenario(DikeSoilScenario waternetOptionsDikeSoilScenario) + { + var translationTable = new Dictionary() + { + {DikeSoilScenario.ClayDikeOnClay, LocationWaternetOptionsDikeSoilScenario.ClayDikeOnClay}, + {DikeSoilScenario.ClayDikeOnSand, LocationWaternetOptionsDikeSoilScenario.ClayDikeOnSand}, + {DikeSoilScenario.SandDikeOnClay, LocationWaternetOptionsDikeSoilScenario.SandDikeOnClay}, + {DikeSoilScenario.SandDikeOnSand, LocationWaternetOptionsDikeSoilScenario.SandDikeOnSand} + }; + return translationTable[waternetOptionsDikeSoilScenario]; + } } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r1687 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1687) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1933) @@ -512,6 +512,7 @@ location.HeadPl2 = (waternetOptions.HeadPl2Specified ? (double?)waternetOptions.HeadPl2 : null); location.HeadPl3 = (waternetOptions.HeadPl3Specified ? (double?)waternetOptions.HeadPl3 : null); location.HeadPl4 = (waternetOptions.HeadPl4Specified ? (double?)waternetOptions.HeadPl4 : null); + location.DikeSoilScenario = ConversionHelper.ConvertToDikeSoilScenario(waternetOptions.DikeSoilScenario); location.SlopeDampingPiezometricHeightPolderSide = waternetOptions.SlopeDampingFactor; location.PlLineOffsetBelowDikeTopAtRiver = waternetOptions.Pl1BelowCrestRiverside; location.PlLineOffsetBelowDikeTopAtPolder = waternetOptions.Pl1BelowCrestPolderside; Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs =================================================================== diff -u -r1632 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1632) +++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1933) @@ -3416,6 +3416,8 @@ private LocationWaternetOptionsIntrusionVerticalWaterPressure intrusionVerticalWaterPressureField; + private LocationWaternetOptionsDikeSoilScenario dikeSoilScenarioField; + /// [System.Xml.Serialization.XmlAttributeAttribute()] public LocationWaternetOptionsPhreaticLineCreationMethod PhreaticLineCreationMethod { @@ -3800,6 +3802,17 @@ this.intrusionVerticalWaterPressureField = value; } } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public LocationWaternetOptionsDikeSoilScenario DikeSoilScenario { + get { + return this.dikeSoilScenarioField; + } + set { + this.dikeSoilScenarioField = value; + } + } } /// @@ -3849,6 +3862,25 @@ /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] + public enum LocationWaternetOptionsDikeSoilScenario { + + /// + ClayDikeOnClay, + + /// + SandDikeOnClay, + + /// + ClayDikeOnSand, + + /// + SandDikeOnSand, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/DAMEnumerations.cs =================================================================== diff -u -r1712 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Data/General/DAMEnumerations.cs (.../DAMEnumerations.cs) (revision 1712) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/DAMEnumerations.cs (.../DAMEnumerations.cs) (revision 1933) @@ -297,6 +297,32 @@ Nonequidistant } + /// + /// Dike soil scenario for the automatic creation of the waternet - 4 possibilities. + /// + public enum DikeSoilScenario + { + /// + /// Clay dike on clay subsoil + /// + ClayDikeOnClay, + + /// + /// Sand dike on clay subsoil + /// + SandDikeOnClay, + + /// + /// Clay dike on sand subsoil + /// + ClayDikeOnSand, + + /// + /// Sand dike on sand subsoil + /// + SandDikeOnSand + } + // TODO: FM this is failure mechanism specific code and should be moved to ..\KernelWrappers public enum IntrusionVerticalWaterPressureType { @@ -306,4 +332,5 @@ HydroStatic, SemiTimeDependent } + } Index: DamEngine/trunk/xsd/DamLocation.xsd =================================================================== diff -u -r1382 -r1933 --- DamEngine/trunk/xsd/DamLocation.xsd (.../DamLocation.xsd) (revision 1382) +++ DamEngine/trunk/xsd/DamLocation.xsd (.../DamLocation.xsd) (revision 1933) @@ -102,6 +102,16 @@ + + + + + + + + + + Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs =================================================================== diff -u -r1723 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 1723) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 1933) @@ -692,5 +692,23 @@ { Assert.AreEqual(inputdataSourceTypeSensors, ConversionHelper.ConvertToInputDataSourceTypeSensors(dataSourceTypeSensors)); } + + [TestCase(LocationWaternetOptionsDikeSoilScenario.ClayDikeOnClay, DikeSoilScenario.ClayDikeOnClay)] + [TestCase(LocationWaternetOptionsDikeSoilScenario.ClayDikeOnSand, DikeSoilScenario.ClayDikeOnSand)] + [TestCase(LocationWaternetOptionsDikeSoilScenario.SandDikeOnClay, DikeSoilScenario.SandDikeOnClay)] + [TestCase(LocationWaternetOptionsDikeSoilScenario.SandDikeOnSand, DikeSoilScenario.SandDikeOnSand)] + public void CanConvertToDikeSoilScenarioType(LocationWaternetOptionsDikeSoilScenario locationWaternetOptionsDikeSoilScenario, DikeSoilScenario dikeSoilScenario) + { + Assert.AreEqual(dikeSoilScenario, ConversionHelper.ConvertToDikeSoilScenario(locationWaternetOptionsDikeSoilScenario)); + } + + [TestCase(DikeSoilScenario.ClayDikeOnClay, LocationWaternetOptionsDikeSoilScenario.ClayDikeOnClay)] + [TestCase(DikeSoilScenario.ClayDikeOnSand, LocationWaternetOptionsDikeSoilScenario.ClayDikeOnSand)] + [TestCase(DikeSoilScenario.SandDikeOnClay, LocationWaternetOptionsDikeSoilScenario.SandDikeOnClay)] + [TestCase(DikeSoilScenario.SandDikeOnSand, LocationWaternetOptionsDikeSoilScenario.SandDikeOnSand)] + public void CanConvertToInputDikeSoilScenarioType(DikeSoilScenario dikeSoilScenario, LocationWaternetOptionsDikeSoilScenario locationWaternetOptionsDikeSoilScenario) + { + Assert.AreEqual(locationWaternetOptionsDikeSoilScenario, ConversionHelper.ConvertToInputDikeSoilScenario(dikeSoilScenario)); + } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs =================================================================== diff -u -r1689 -r1933 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1689) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1933) @@ -470,6 +470,7 @@ waternetOptions.HeadPl3 = location.HeadPl3 ?? 0.0; waternetOptions.HeadPl4Specified = location.HeadPl4.HasValue; waternetOptions.HeadPl4 = location.HeadPl4 ?? 0.0; + waternetOptions.DikeSoilScenario = ConversionHelper.ConvertToInputDikeSoilScenario(location.DikeSoilScenario); waternetOptions.SlopeDampingFactor = location.SlopeDampingPiezometricHeightPolderSide; waternetOptions.Pl1BelowCrestRiverside = location.PlLineOffsetBelowDikeTopAtRiver; waternetOptions.Pl1BelowCrestPolderside = location.PlLineOffsetBelowDikeTopAtPolder;