Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/ConversionHelper.cs =================================================================== diff -u -r732 -r736 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 732) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 736) @@ -22,6 +22,7 @@ using System.Collections.Generic; using Deltares.DamEngine.Io.XmlInput; using Deltares.DamEngine.Io.XmlOutput; +using Deltares.Geotechnics; using Deltares.Geotechnics.Soils; using Deltares.Standard; using Deltares.Standard.Logging; @@ -678,5 +679,83 @@ }; return translationTable[tangentLineType]; } + + /// + /// Converts the shear strength model to soil shear strength model. + /// + /// The shear strength model. + /// + public static SoilShearStrengthModel ConvertToSoilShearStrengthModel(ShearStrengthModel shearStrengthModel) + { + var translationTable = new Dictionary() + { + {ShearStrengthModel.None, SoilShearStrengthModel.None}, + {ShearStrengthModel.CPhi, SoilShearStrengthModel.CPhi}, + {ShearStrengthModel.StressTable, SoilShearStrengthModel.StressTable}, + {ShearStrengthModel.PseudoValues, SoilShearStrengthModel.PseudoValues}, + {ShearStrengthModel.CuMeasured, SoilShearStrengthModel.SuMeasured}, + {ShearStrengthModel.CuCalculated, SoilShearStrengthModel.SuCalculated}, + {ShearStrengthModel.CuGradient, SoilShearStrengthModel.SuGradient}, + {ShearStrengthModel.CuCalculatedYield, SoilShearStrengthModel.SuCalculatedWithYield}, + {ShearStrengthModel.CPhiOrCuCalculated, SoilShearStrengthModel.CPhiOrSuCalculated}, + }; + return translationTable[shearStrengthModel]; + } + + /// + /// Converts the soil shear strength model to shear strength model. + /// + /// The soil shear strength model. + /// + public static ShearStrengthModel ConvertToShearStrengthModel(SoilShearStrengthModel soilShearStrengthModel) + { + var translationTable = new Dictionary() + { + {SoilShearStrengthModel.None, ShearStrengthModel.None}, + {SoilShearStrengthModel.CPhi, ShearStrengthModel.CPhi}, + {SoilShearStrengthModel.StressTable, ShearStrengthModel.StressTable}, + {SoilShearStrengthModel.PseudoValues, ShearStrengthModel.PseudoValues}, + {SoilShearStrengthModel.SuMeasured, ShearStrengthModel.CuMeasured}, + {SoilShearStrengthModel.SuCalculated, ShearStrengthModel.CuCalculated}, + {SoilShearStrengthModel.SuGradient, ShearStrengthModel.CuGradient}, + {SoilShearStrengthModel.SuCalculatedWithYield, ShearStrengthModel.CuCalculatedYield}, + {SoilShearStrengthModel.CPhiOrSuCalculated, ShearStrengthModel.CPhiOrCuCalculated}, + }; + return translationTable[soilShearStrengthModel]; + } + + /// + /// Converts the dilatancy type to soil dilatancy dilatancy. + /// + /// Type of the dilatancy. + /// + public static SoilDilatancyType ConvertToSoilDilatancyType(DilatancyType dilatancyType) + { + var translationTable = new Dictionary() + { + {DilatancyType.Zero, SoilDilatancyType.Zero}, + {DilatancyType.Phi, SoilDilatancyType.Phi}, + {DilatancyType.MinusPhi, SoilDilatancyType.MinusPhi}, + }; + return translationTable[dilatancyType]; + } + + /// + /// Converts the soil dilatancy type to dilatancy type. + /// + /// Type of the soil dilatancy. + /// + public static DilatancyType ConvertToDilatancyType(SoilDilatancyType soilDilatancyType) + { + var translationTable = new Dictionary() + { + {SoilDilatancyType.Zero, DilatancyType.Zero}, + {SoilDilatancyType.Phi, DilatancyType.Phi}, + {SoilDilatancyType.MinusPhi, DilatancyType.MinusPhi}, + }; + return translationTable[soilDilatancyType]; + } + + } } Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs =================================================================== diff -u -r735 -r736 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 735) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 736) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Linq; using Deltares.DamEngine.Io.XmlInput; +using Deltares.Geotechnics; using Deltares.Geotechnics.Soils; using Deltares.Geotechnics.SurfaceLines; using Deltares.Standard.Extensions; @@ -226,6 +227,16 @@ soil.DiameterD90 = inputSoil.DiameterD90Specified ? inputSoil.DiameterD90 : Double.NaN; soil.PermeabKx = inputSoil.PermeabKxSpecified ? inputSoil.PermeabKx : Double.NaN; soil.WhitesConstant = inputSoil.WhitesConstantSpecified ? inputSoil.WhitesConstant : Double.NaN; + soil.ShearStrengthModel = inputSoil.ShearStrengthModelSpecified ? + ConversionHelper.ConvertToShearStrengthModel(inputSoil.ShearStrengthModel) : ShearStrengthModel.CPhi; + soil.UseDefaultShearStrengthModel = inputSoil.DefaultShearStrengthModelSpecified ? + inputSoil.DefaultShearStrengthModel : true; + soil.Cohesion = inputSoil.CohesionSpecified ? inputSoil.Cohesion : Double.NaN; + soil.FrictionAngle = inputSoil.FrictionAngleSpecified ? inputSoil.FrictionAngle : Double.NaN; + soil.OCR = inputSoil.OcrSpecified ? inputSoil.Ocr : Double.NaN; + soil.RestSlope = inputSoil.SlopeRestProfileSpecified ? inputSoil.SlopeRestProfile : Double.NaN; + soil.DilatancyType = inputSoil.DilatancyTypeSpecified ? + ConversionHelper.ConvertToDilatancyType(inputSoil.DilatancyType) : DilatancyType.Phi; soils.Add(soil); } } Index: dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs =================================================================== diff -u -r735 -r736 --- dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 735) +++ dam clients/DamUI/trunk/src/Dam/Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 736) @@ -246,6 +246,20 @@ inputSoil.PermeabKx = soil.PermeabKx; inputSoil.WhitesConstantSpecified = !Double.IsNaN(soil.WhitesConstant); inputSoil.WhitesConstant = soil.WhitesConstant; + inputSoil.ShearStrengthModelSpecified = true; + inputSoil.ShearStrengthModel = ConversionHelper.ConvertToSoilShearStrengthModel(soil.ShearStrengthModel); + inputSoil.DefaultShearStrengthModelSpecified = true; + inputSoil.DefaultShearStrengthModel = soil.UseDefaultShearStrengthModel; + inputSoil.CohesionSpecified = !Double.IsNaN(soil.Cohesion); + inputSoil.Cohesion = soil.Cohesion; + inputSoil.FrictionAngleSpecified = !Double.IsNaN(soil.FrictionAngle); + inputSoil.FrictionAngle = soil.FrictionAngle; + inputSoil.OcrSpecified = !Double.IsNaN(soil.OCR); + inputSoil.Ocr = soil.OCR; + inputSoil.SlopeRestProfileSpecified = !Double.IsNaN(soil.RestSlope); + inputSoil.SlopeRestProfile = soil.RestSlope; + inputSoil.DilatancyTypeSpecified = true; + inputSoil.DilatancyType = ConversionHelper.ConvertToSoilDilatancyType(soil.DilatancyType); inputSoils[i] = inputSoil; } } Index: dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/ConversionHelperTests.cs =================================================================== diff -u -r732 -r736 --- dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 732) +++ dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 736) @@ -23,6 +23,7 @@ using Deltares.Dam.Data.DamEngineIo; using Deltares.DamEngine.Io.XmlInput; using Deltares.DamEngine.Io.XmlOutput; +using Deltares.Geotechnics; using Deltares.Geotechnics.Soils; using Deltares.Geotechnics.SurfaceLines; using Deltares.Standard; @@ -320,5 +321,54 @@ { Assert.AreEqual(tangentLineType, ConversionHelper.ConvertToTangentLinesDefinition(inputTangentLineType)); } + + [Test] + [TestCase(ShearStrengthModel.None, SoilShearStrengthModel.None)] + [TestCase(ShearStrengthModel.CPhi, SoilShearStrengthModel.CPhi)] + [TestCase(ShearStrengthModel.StressTable, SoilShearStrengthModel.StressTable)] + [TestCase(ShearStrengthModel.PseudoValues, SoilShearStrengthModel.PseudoValues)] + [TestCase(ShearStrengthModel.CuMeasured, SoilShearStrengthModel.SuMeasured)] + [TestCase(ShearStrengthModel.CuCalculated, SoilShearStrengthModel.SuCalculated)] + [TestCase(ShearStrengthModel.CuGradient, SoilShearStrengthModel.SuGradient)] + [TestCase(ShearStrengthModel.CuCalculatedYield, SoilShearStrengthModel.SuCalculatedWithYield)] + [TestCase(ShearStrengthModel.CPhiOrCuCalculated, SoilShearStrengthModel.CPhiOrSuCalculated)] + public void CanConvertToSoilShearStrengthModel(ShearStrengthModel shearStrengthModel, SoilShearStrengthModel soilShearStrengthModel) + { + Assert.AreEqual(soilShearStrengthModel, ConversionHelper.ConvertToSoilShearStrengthModel(shearStrengthModel)); + } + + [Test] + [TestCase(SoilShearStrengthModel.None, ShearStrengthModel.None)] + [TestCase(SoilShearStrengthModel.CPhi, ShearStrengthModel.CPhi)] + [TestCase(SoilShearStrengthModel.StressTable, ShearStrengthModel.StressTable)] + [TestCase(SoilShearStrengthModel.PseudoValues, ShearStrengthModel.PseudoValues)] + [TestCase(SoilShearStrengthModel.SuMeasured, ShearStrengthModel.CuMeasured)] + [TestCase(SoilShearStrengthModel.SuCalculated, ShearStrengthModel.CuCalculated)] + [TestCase(SoilShearStrengthModel.SuGradient, ShearStrengthModel.CuGradient)] + [TestCase(SoilShearStrengthModel.SuCalculatedWithYield, ShearStrengthModel.CuCalculatedYield)] + [TestCase(SoilShearStrengthModel.CPhiOrSuCalculated, ShearStrengthModel.CPhiOrCuCalculated)] + public void CanConvertToShearStrengthModel(SoilShearStrengthModel soilShearStrengthModel, ShearStrengthModel shearStrengthModel) + { + Assert.AreEqual(shearStrengthModel, ConversionHelper.ConvertToShearStrengthModel(soilShearStrengthModel)); + } + + [Test] + [TestCase(DilatancyType.Zero, SoilDilatancyType.Zero)] + [TestCase(DilatancyType.Phi, SoilDilatancyType.Phi)] + [TestCase(DilatancyType.MinusPhi, SoilDilatancyType.MinusPhi)] + public void CanConvertToSoilDilatancyType(DilatancyType dilatancyType, SoilDilatancyType soilDilatancyType) + { + Assert.AreEqual(soilDilatancyType, ConversionHelper.ConvertToSoilDilatancyType(dilatancyType)); + } + + [Test] + [TestCase(SoilDilatancyType.Zero, DilatancyType.Zero)] + [TestCase(SoilDilatancyType.Phi, DilatancyType.Phi)] + [TestCase(SoilDilatancyType.MinusPhi, DilatancyType.MinusPhi)] + public void CanConvertToDilatancyType(SoilDilatancyType soilDilatancyType, DilatancyType dilatancyType) + { + Assert.AreEqual(dilatancyType, ConversionHelper.ConvertToDilatancyType(soilDilatancyType)); + } + } } Index: dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs =================================================================== diff -u -r732 -r736 --- dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 732) +++ dam clients/DamUI/trunk/src/Dam/Tests/DamEngineIo/FillXmlInputFromDamUiTests.cs (.../FillXmlInputFromDamUiTests.cs) (revision 736) @@ -26,6 +26,7 @@ using Deltares.DamEngine.Io; using Deltares.DamEngine.Io.XmlInput; using Deltares.Geometry; +using Deltares.Geotechnics; using Deltares.Geotechnics.Soils; using Deltares.Geotechnics.SurfaceLines; using Deltares.Standard.EventPublisher; @@ -161,6 +162,13 @@ soil.DiameterD90 = 20 + 0.1 * i; soil.PermeabKx = 21 + 0.1 * i; soil.WhitesConstant = 22 + 0.1 * i; + soil.ShearStrengthModel = ShearStrengthModel.CuCalculated; + soil.UseDefaultShearStrengthModel = false; + soil.Cohesion = 23 + 0.1 * i; + soil.FrictionAngle = 24 + 0.1 * i; + soil.OCR = 25 + 0.1 * i; + soil.RestSlope = 26 + 0.1 * i; + soil.DilatancyType = DilatancyType.MinusPhi; dike.SoilList.Add(soil); }