Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs =================================================================== diff -u -r1157 -r1165 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1157) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlInputFromDam.cs (.../FillXmlInputFromDam.cs) (revision 1165) @@ -452,6 +452,22 @@ inputLocation.StabilityOptions.MinimumCircleDepth = location.StabilityOptions.MinimalCircleDepth.Value; } } + // Modelfactors + if (location.ModelFactors != null) + { + inputLocation.ModelFactors = new LocationModelFactors(); + inputLocation.ModelFactors.RequiredSafetyFactorPipingSpecified = location.ModelFactors.RequiredSafetyFactorPiping.HasValue; + inputLocation.ModelFactors.RequiredSafetyFactorPiping = location.ModelFactors.RequiredSafetyFactorPiping ?? 0.0; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityInnerSlopeSpecified = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope.HasValue; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityInnerSlope = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope ?? 0.0; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityOuterSlopeSpecified = location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope.HasValue; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityOuterSlope = location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope ?? 0.0; + inputLocation.ModelFactors.UpliftCriterionPipingSpecified = location.ModelFactors.UpliftCriterionPiping.HasValue; + inputLocation.ModelFactors.UpliftCriterionPiping = location.ModelFactors.UpliftCriterionPiping ?? 0.0; + inputLocation.ModelFactors.UpliftCriterionStabilitySpecified = location.ModelFactors.UpliftCriterionStability.HasValue; + inputLocation.ModelFactors.UpliftCriterionStability = location.ModelFactors.UpliftCriterionStability ?? 0.0; + } + inputLocations[i] = inputLocation; } } Index: DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs =================================================================== diff -u -r1156 -r1165 --- DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1156) +++ DamEngine/trunk/src/Deltares.DamEngine.Io/DamInput.cs (.../DamInput.cs) (revision 1165) @@ -295,6 +295,8 @@ private LocationStabilityOptions stabilityOptionsField; + private LocationModelFactors modelFactorsField; + private string surfaceLineNameField; private string segmentNameField; @@ -401,6 +403,17 @@ } /// + [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] + public LocationModelFactors ModelFactors { + get { + return this.modelFactorsField; + } + set { + this.modelFactorsField = value; + } + } + + /// [System.Xml.Serialization.XmlAttributeAttribute()] public string SurfaceLineName { get { @@ -3748,7 +3761,146 @@ /// [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] + public partial class LocationModelFactors { + + private double requiredSafetyFactorStabilityInnerSlopeField; + + private bool requiredSafetyFactorStabilityInnerSlopeFieldSpecified; + + private double requiredSafetyFactorStabilityOuterSlopeField; + + private bool requiredSafetyFactorStabilityOuterSlopeFieldSpecified; + + private double requiredSafetyFactorPipingField; + + private bool requiredSafetyFactorPipingFieldSpecified; + + private double upliftCriterionPipingField; + + private bool upliftCriterionPipingFieldSpecified; + + private double upliftCriterionStabilityField; + + private bool upliftCriterionStabilityFieldSpecified; + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public double RequiredSafetyFactorStabilityInnerSlope { + get { + return this.requiredSafetyFactorStabilityInnerSlopeField; + } + set { + this.requiredSafetyFactorStabilityInnerSlopeField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RequiredSafetyFactorStabilityInnerSlopeSpecified { + get { + return this.requiredSafetyFactorStabilityInnerSlopeFieldSpecified; + } + set { + this.requiredSafetyFactorStabilityInnerSlopeFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public double RequiredSafetyFactorStabilityOuterSlope { + get { + return this.requiredSafetyFactorStabilityOuterSlopeField; + } + set { + this.requiredSafetyFactorStabilityOuterSlopeField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RequiredSafetyFactorStabilityOuterSlopeSpecified { + get { + return this.requiredSafetyFactorStabilityOuterSlopeFieldSpecified; + } + set { + this.requiredSafetyFactorStabilityOuterSlopeFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public double RequiredSafetyFactorPiping { + get { + return this.requiredSafetyFactorPipingField; + } + set { + this.requiredSafetyFactorPipingField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool RequiredSafetyFactorPipingSpecified { + get { + return this.requiredSafetyFactorPipingFieldSpecified; + } + set { + this.requiredSafetyFactorPipingFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public double UpliftCriterionPiping { + get { + return this.upliftCriterionPipingField; + } + set { + this.upliftCriterionPipingField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UpliftCriterionPipingSpecified { + get { + return this.upliftCriterionPipingFieldSpecified; + } + set { + this.upliftCriterionPipingFieldSpecified = value; + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute()] + public double UpliftCriterionStability { + get { + return this.upliftCriterionStabilityField; + } + set { + this.upliftCriterionStabilityField = value; + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool UpliftCriterionStabilitySpecified { + get { + return this.upliftCriterionStabilityFieldSpecified; + } + set { + this.upliftCriterionStabilityFieldSpecified = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] public enum InputDamProjectType { /// Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs =================================================================== diff -u -r1156 -r1165 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1156) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 1165) @@ -293,12 +293,12 @@ location.RedesignDikeHeight = false; location.RedesignDikeShoulder = false; location.ShoulderEmbankmentMaterial = "ShoulderMat" + (i + 1).ToString(); ; - location.StabilityShoulderGrowSlope = 10.0 * i + 0.10; - location.StabilityShoulderGrowDeltaX = 10.0 * i + 0.11; - location.StabilitySlopeAdaptionDeltaX = 10.0 * i + 0.12; - location.SlopeAdaptionStartCotangent = 10.0 * i + 0.13; - location.SlopeAdaptionEndCotangent = 10.0 * i + 0.14; - location.SlopeAdaptionStepCotangent = 10.0 * i + 0.15; + location.StabilityShoulderGrowSlope = 10.0 * i + 0.50; + location.StabilityShoulderGrowDeltaX = 10.0 * i + 0.51; + location.StabilitySlopeAdaptionDeltaX = 10.0 * i + 0.52; + location.SlopeAdaptionStartCotangent = 10.0 * i + 0.53; + location.SlopeAdaptionEndCotangent = 10.0 * i + 0.54; + location.SlopeAdaptionStepCotangent = 10.0 * i + 0.55; location.UseNewDikeTopWidth = true; location.UseNewDikeSlopeInside = true; location.UseNewDikeSlopeOutside = true; @@ -307,19 +307,28 @@ location.UseNewMaxHeightShoulderAsFraction = true; location.UseNewMinDistanceDikeToeStartDitch = true; location.UseNewDitchDefinition = true; - location.NewDikeTopWidth = 10.0 * i + 0.16; - location.NewDikeSlopeInside = 10.0 * i + 0.17; - location.NewDikeSlopeOutside = 10.0 * i + 0.18; - location.NewShoulderTopSlope = 10.0 * i + 0.19; - location.NewShoulderBaseSlope = 10.0 * i + 0.20; - location.NewMaxHeightShoulderAsFraction = 10.0 * i + 0.21; - location.NewMinDistanceDikeToeStartDitch = 10.0 * i + 0.22; + location.NewDikeTopWidth = 10.0 * i + 0.56; + location.NewDikeSlopeInside = 10.0 * i + 0.57; + location.NewDikeSlopeOutside = 10.0 * i + 0.58; + location.NewShoulderTopSlope = 10.0 * i + 0.59; + location.NewShoulderBaseSlope = 10.0 * i + 0.60; + location.NewMaxHeightShoulderAsFraction = 10.0 * i + 0.61; + location.NewMinDistanceDikeToeStartDitch = 10.0 * i + 0.62; location.UseNewDitchDefinition = true; - location.NewWidthDitchBottom = 10.0 * i + 0.23; - location.NewSlopeAngleDitch = 10.0 * i + 0.24; - location.NewDepthDitch = 10.0 * i + 0.25; + location.NewWidthDitchBottom = 10.0 * i + 0.63; + location.NewSlopeAngleDitch = 10.0 * i + 0.64; + location.NewDepthDitch = 10.0 * i + 0.65; location.StabilityDesignMethod = StabilityDesignMethod.SlopeAdaptionBeforeShoulderAdaption; location.SoilList = dike.SoilList; + // ModelFactors + location.ModelFactors = new ModelFactors() + { + RequiredSafetyFactorPiping = 10.0 * i + 0.65, + RequiredSafetyFactorStabilityInnerSlope = 10.0 * i + 0.66, + RequiredSafetyFactorStabilityOuterSlope = 10.0 * i + 0.67, + UpliftCriterionStability = 10.0 * i + 0.68, + UpliftCriterionPiping = 10.0 * i + 0.69 + }; dike.Locations.Add(location); } } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r1160 -r1165 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1160) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1165) @@ -471,6 +471,29 @@ location.StabilityOptions.MinimalCircleDepth = inputLocation.StabilityOptions.MinimumCircleDepth; } } + // Modelfactors + var modelFactors = inputLocation.ModelFactors; + if (modelFactors != null) + { + location.ModelFactors = new ModelFactors(); + location.ModelFactors.RequiredSafetyFactorPiping = (modelFactors.RequiredSafetyFactorPipingSpecified ? (double?)modelFactors.RequiredSafetyFactorPiping : null); + location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope = (modelFactors.RequiredSafetyFactorStabilityInnerSlopeSpecified ? (double?)modelFactors.RequiredSafetyFactorStabilityInnerSlope : null); + location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope = (modelFactors.RequiredSafetyFactorStabilityOuterSlopeSpecified ? (double?)modelFactors.RequiredSafetyFactorStabilityOuterSlope : null); + location.ModelFactors.UpliftCriterionPiping = (modelFactors.UpliftCriterionPipingSpecified ? (double?)modelFactors.UpliftCriterionPiping : null); + location.ModelFactors.UpliftCriterionStability = (modelFactors.UpliftCriterionStabilitySpecified ? (double?)modelFactors.UpliftCriterionStability : null); + + inputLocation.ModelFactors.RequiredSafetyFactorStabilityInnerSlopeSpecified = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope.HasValue; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityInnerSlope = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope ?? 0.0; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityOuterSlopeSpecified = location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope.HasValue; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityOuterSlope = location.ModelFactors.RequiredSafetyFactorStabilityOuterSlope ?? 0.0; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityInnerSlopeSpecified = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope.HasValue; + inputLocation.ModelFactors.RequiredSafetyFactorStabilityInnerSlope = location.ModelFactors.RequiredSafetyFactorStabilityInnerSlope ?? 0.0; + inputLocation.ModelFactors.UpliftCriterionPipingSpecified = location.ModelFactors.UpliftCriterionPiping.HasValue; + inputLocation.ModelFactors.UpliftCriterionPiping = location.ModelFactors.UpliftCriterionPiping ?? 0.0; + inputLocation.ModelFactors.UpliftCriterionStabilitySpecified = location.ModelFactors.UpliftCriterionStability.HasValue; + inputLocation.ModelFactors.UpliftCriterionStability = location.ModelFactors.UpliftCriterionStability ?? 0.0; + } + dikeLocations.Add(location); } } Index: DamEngine/trunk/xsd/DamLocation.xsd =================================================================== diff -u -r1156 -r1165 --- DamEngine/trunk/xsd/DamLocation.xsd (.../DamLocation.xsd) (revision 1156) +++ DamEngine/trunk/xsd/DamLocation.xsd (.../DamLocation.xsd) (revision 1165) @@ -190,6 +190,15 @@ + + + + + + + + +