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);
}