Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs =================================================================== diff -u -r2405 -r2406 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs (.../WtiPipingSellmeijerRevisedKernelWrapper.cs) (revision 2405) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapper.cs (.../WtiPipingSellmeijerRevisedKernelWrapper.cs) (revision 2406) @@ -291,7 +291,7 @@ { double xEntry = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X; double xExit = upliftLocationAndResult.X; - damPipingInput.SeepageLength = xExit - xEntry; + damPipingInput.SeepageLength = (xExit - xEntry) + damKernelInput.Location.DistanceToEntryPoint; damPipingOutput.SeepageLength = damPipingInput.SeepageLength; var topLevelAquifer = soilProfile.GetLayerWithName(upliftLocationAndResult.LayerWhereUpliftOccuresId).TopLevel; Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapperTests.cs =================================================================== diff -u -r2173 -r2406 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapperTests.cs (.../WtiPipingSellmeijerRevisedKernelWrapperTests.cs) (revision 2173) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/WtiPipingSellmeijerRevised/WtiPipingSellmeijerRevisedKernelWrapperTests.cs (.../WtiPipingSellmeijerRevisedKernelWrapperTests.cs) (revision 2406) @@ -40,8 +40,11 @@ [TestFixture] public class WtiPipingSellmeijerRevisedKernelWrapperTests { - [Test] - public void TestFullCalculation() + [TestCase(0, 49.5, 1860.9050036726026, 1302.9335025708217, 1302.6335025708217, 0.037999943884683543)] + [TestCase(10, 59.5, 2196.3999536424808, 1537.7799675497363, 1537.4799675497363, 0.038699691219277771)] + [TestCase(-10, 39.5, 1519.6869237263827, 1064.0808466084677, 1063.7808466084678, 0.037131708214086942)] + public void TestFullCalculation(double distanceToEntryPoint, double expectedSeepageLength, double expectedFoSbe, double expectedHcbe, + double expectedDeltaPhiCbe, double expectedCcreep) { // expected results are based on test in Sellmeijer2011CalculatorTests, CalculateTestValues // as performed in the Wti kernel itself. @@ -50,6 +53,7 @@ var location = new Location("Location 1") { + DistanceToEntryPoint = distanceToEntryPoint, SurfaceLine = FactoryForSurfaceLines.CreateSurfaceLineForWtiPiping(), ModelFactors = { @@ -107,14 +111,14 @@ kernelWrapper.Execute(damPipingInput, kernelDataOutput, out messages); var damPipingOutput = (WtiPipingSellmeijerRevisedOutput)kernelDataOutput; Assert.AreEqual(0, messages.Count); - Assert.AreEqual(1860.9050036726026, damPipingOutput.FoSbe, diff); - Assert.AreEqual(1302.9335025708217, damPipingOutput.Hcbe, diff); - Assert.AreEqual(1302.6335025708217, damPipingOutput.DeltaPhiCbe, diff); + Assert.AreEqual(expectedFoSbe, damPipingOutput.FoSbe, diff); + Assert.AreEqual(expectedHcbe, damPipingOutput.Hcbe, diff); + Assert.AreEqual(expectedDeltaPhiCbe, damPipingOutput.DeltaPhiCbe, diff); Assert.AreEqual(0.56948691811077123, damPipingOutput.FoSu, diff); Assert.AreEqual(0.56948691811077123, damPipingOutput.Hcu, diff); Assert.AreEqual(0.4271151885830784, damPipingOutput.DeltaPhiCu, diff); Assert.AreEqual(4.19, damPipingOutput.EffectiveStress, diff); - Assert.AreEqual(49.5, damPipingOutput.SeepageLength, diff); + Assert.AreEqual(expectedSeepageLength, damPipingOutput.SeepageLength, diff); // Fill the design results List results; @@ -127,8 +131,8 @@ Assert.IsNotNullOrEmpty(result.ScenarioName); Assert.IsNotNullOrEmpty(result.ProfileName); Assert.AreEqual(90, result.PipingDesignResults.Wti2017BackwardErosionSafetyFactor, diff); - Assert.AreEqual(1302.9335025708217, result.PipingDesignResults.Wti2017BackwardErosionHcritical, diff); - Assert.AreEqual(1302.6335025708217, result.PipingDesignResults.Wti2017BackwardErosionDeltaPhiC, diff); + Assert.AreEqual(expectedHcbe, result.PipingDesignResults.Wti2017BackwardErosionHcritical, diff); + Assert.AreEqual(expectedDeltaPhiCbe, result.PipingDesignResults.Wti2017BackwardErosionDeltaPhiC, diff); Assert.AreEqual(0.70, result.PipingDesignResults.Wti2017BackwardErosionDeltaPhiReduced, diff); Assert.AreEqual(0.56948691811077123, result.PipingDesignResults.Wti2017UpliftSafetyFactor, diff); Assert.AreEqual(0.56948691811077123, result.PipingDesignResults.Wti2017UpliftHcritical, diff); @@ -137,10 +141,10 @@ Assert.AreEqual(0.40, result.PipingDesignResults.Wti2017HeaveHcritical, diff); Assert.AreEqual(0.75, result.PipingDesignResults.Wti2017Gradient, diff); Assert.AreEqual(4.19, result.PipingDesignResults.EffectiveStress, diff); - Assert.AreEqual(0.037999943884683543, result.PipingDesignResults.CCreep, diff); + Assert.AreEqual(expectedCcreep, result.PipingDesignResults.CCreep, diff); Assert.AreEqual(90, result.PipingDesignResults.Wti2017SafetyFactorOverall, diff); - Assert.AreEqual(1302.9335025708217, result.PipingDesignResults.Wti2017HcriticalOverall, diff); + Assert.AreEqual(expectedHcbe, result.PipingDesignResults.Wti2017HcriticalOverall, diff); Assert.AreEqual(59.5, result.PipingDesignResults.LocalExitPointX); Assert.AreEqual(0.88258734130293759, result.PipingDesignResults.UpliftFactor); @@ -151,13 +155,16 @@ } } - [Test] - public void TestPrepare() + [TestCase(0, 49.5)] + [TestCase(10, 59.5)] + [TestCase(-10, 39.5)] + public void TestPrepareWithInfluenceOfDistanceToEntryPoint(double distanceToEnrtyPoint, double expectedSeepageLength) { const double diff = 0.0001; var location = new Location { + DistanceToEntryPoint = distanceToEnrtyPoint, SurfaceLine = FactoryForSurfaceLines.CreateSurfaceLineForWtiPiping(), ModelFactors = { @@ -199,7 +206,7 @@ Assert.AreEqual(0.3, damPipingInput.Rc, diff); Assert.AreEqual(1.0, damPipingInput.DTotal, diff); Assert.AreEqual(8.0, damPipingInput.DAquifer, diff); - Assert.AreEqual(49.5, damPipingInput.SeepageLength, diff); + Assert.AreEqual(expectedSeepageLength, damPipingInput.SeepageLength, diff); Assert.AreEqual(0.000200, damPipingInput.D70, diff); Assert.AreEqual(0.25, damPipingInput.WhitesDragCoefficient, diff); Assert.AreEqual(37.0, damPipingInput.BeddingAngle, diff);