Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs =================================================================== diff -u -r5793 -r5820 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 5793) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityCommon/ConversionHelperTests.cs (.../ConversionHelperTests.cs) (revision 5820) @@ -218,6 +218,8 @@ [TestCase(ShearStrengthModelType.MohrCoulomb, ShearStrengthModel.CPhi)] [TestCase(ShearStrengthModelType.Shansep, ShearStrengthModel.SuCalculated)] + [TestCase(ShearStrengthModelType.SigmaTauTable, ShearStrengthModel.SigmaTauCurve)] + [TestCase(ShearStrengthModelType.SuTable, ShearStrengthModel.SuTable)] public static void CanConvertToDamShearStrengthModel( ShearStrengthModelType kernelShearStrengthModel, ShearStrengthModel damShearStrengthModel) { @@ -226,6 +228,8 @@ [TestCase(ShearStrengthModel.CPhi, ShearStrengthModelType.MohrCoulomb)] [TestCase(ShearStrengthModel.SuCalculated, ShearStrengthModelType.Shansep)] + [TestCase(ShearStrengthModel.SigmaTauCurve, ShearStrengthModelType.SigmaTauTable)] + [TestCase(ShearStrengthModel.SuTable, ShearStrengthModelType.SuTable)] public static void CanConvertToMacroStabilityShearStrengthModel( ShearStrengthModel damShearStrengthModel, ShearStrengthModelType kernelShearStrengthModel) { Index: DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForDamProjectData.cs =================================================================== diff -u -r5702 -r5820 --- DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForDamProjectData.cs (.../FactoryForDamProjectData.cs) (revision 5702) +++ DamEngine/trunk/src/Deltares.DamEngine.TestHelpers/Factories/FactoryForDamProjectData.cs (.../FactoryForDamProjectData.cs) (revision 5820) @@ -344,6 +344,26 @@ sigmaTauCurveSoil.SigmaTauCurve.Points.Add(new SigmaTauPoint(1.0, 1.0)); sigmaTauCurveSoil.SigmaTauCurve.Points.Add(new SigmaTauPoint(4.0, 2.0)); dike.SoilList.Add(sigmaTauCurveSoil); + + var suTableSoil = new Soil + { + Name = "suTableSoil", + ShearStrengthModel = ShearStrengthModel.SuTable, + DilatancyType = DilatancyType.Zero, + AbovePhreaticLevel = 7, + BelowPhreaticLevel = 8, + DryUnitWeight = 9, + BeddingAngle = 18, + DiameterD70 = 19, + DiameterD90 = 20, + PermeabKx = 21, + WhitesConstant = 22, + SuTableCurve = new SuTableCurve() + }; + suTableSoil.SuTableCurve.Points.Add(new SigmaSuPoint()); + suTableSoil.SuTableCurve.Points.Add(new SigmaSuPoint(1.0, 5.0)); + suTableSoil.SuTableCurve.Points.Add(new SigmaSuPoint(4.0, 12.0)); + dike.SoilList.Add(suTableSoil); } private static void FillSurfaceLines(Dike dike) @@ -547,7 +567,7 @@ profile.PreconsolidationStresses.Add(preCon); } - const int layerCount = 3; + const int layerCount = 4; var point1 = new Point2D(0, 0); var point2 = new Point2D(0, 10); var point3 = new Point2D(10, 10); Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs =================================================================== diff -u -r5793 -r5820 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 5793) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/ConversionHelper.cs (.../ConversionHelper.cs) (revision 5820) @@ -282,7 +282,8 @@ StrengthIncreaseExponent = soil.StrengthIncreaseExponent, UseSoilClassification = false, // Soil type is not given so make sure it is not used. BondStressCurve = null, // these are not supported in DAM so set to null. - SigmaTauTable = new List() + SigmaTauTable = new List(), + SuTable = new List() }; if (soil.ShearStrengthModel != null) @@ -303,6 +304,18 @@ } } + if (soil.SuTableCurve != null) + { + foreach (SigmaSuPoint point in soil.SuTableCurve.Points) + { + macroStabilitySoil.SuTable.Add(new SuTablePoint() + { + EffectiveStress = point.Sigma, + Su = point.Su + }); + } + } + switch (soil.DilatancyType) { case DilatancyType.MinusPhi: @@ -367,6 +380,19 @@ } } + if (soil.SuTable != null) + { + damSoil.SuTableCurve = new SuTableCurve(); + foreach (SuTablePoint point in soil.SuTable) + { + damSoil.SuTableCurve.Points.Add(new SigmaSuPoint() + { + Sigma = point.EffectiveStress, + Su = point.Su + }); + } + } + if (soil.Dilatancy.AlmostEquals(soil.FrictionAngle, tolerance)) { damSoil.DilatancyType = DilatancyType.Phi; @@ -402,6 +428,9 @@ }, { ShearStrengthModelKernel.SigmaTauTable, ShearStrengthModel.SigmaTauCurve + }, + { + ShearStrengthModelKernel.SuTable, ShearStrengthModel.SuTable } }; return translationTable[kernelShearStrengthModel]; @@ -423,6 +452,9 @@ }, { ShearStrengthModel.SigmaTauCurve, ShearStrengthModelKernel.SigmaTauTable + }, + { + ShearStrengthModel.SuTable, ShearStrengthModelKernel.SuTable } }; return translationTable[damShearStrengthModel];