Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Interfaces/IKernelWrapper.cs =================================================================== diff -u -r502 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Interfaces/IKernelWrapper.cs (.../IKernelWrapper.cs) (revision 502) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Interfaces/IKernelWrapper.cs (.../IKernelWrapper.cs) (revision 564) @@ -10,6 +10,6 @@ IKernelDataInput Prepare(DamKernelInput damKernelInput); int Validate(IKernelDataInput kernelDataInput, out List messages); IKernelDataOutput Execute(IKernelDataInput kernelDataInput, out List messages); - void PostProcess(IKernelDataOutput kernelDataOutput, out DesignResult designResult); + void PostProcess(DamKernelInput damKernelInput, IKernelDataOutput kernelDataOutput, out DesignResult designResult); } } Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs =================================================================== diff -u -r511 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 511) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 564) @@ -100,10 +100,11 @@ /// /// Fills the design results with the kernel output. /// + /// The dam kernel input. /// The kernel data output. /// The design result. /// - public void PostProcess(IKernelDataOutput kernelDataOutput, out DesignResult designResult) + public void PostProcess(DamKernelInput damKernelInput, IKernelDataOutput kernelDataOutput, out DesignResult designResult) { DamPipingSellmeijer4ForcesOutput damPipingOutput = kernelDataOutput as DamPipingSellmeijer4ForcesOutput; if (damPipingOutput == null) Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/Dikes Design/DesignCalculator.cs =================================================================== diff -u -r500 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/Dikes Design/DesignCalculator.cs (.../DesignCalculator.cs) (revision 500) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/Dikes Design/DesignCalculator.cs (.../DesignCalculator.cs) (revision 564) @@ -18,20 +18,20 @@ { for (int locationIndex = 0; locationIndex < damProjectData.Dike.Locations.Count; locationIndex++) { - // TODO: Scenario loop to be implemetented - //for (int designScenarioIndex = 0; designScenarioIndex < damProjectData.Dike.Scenarios.Count; designScenarioIndex++) - //{ - //} - var calculationMessages = new List(); - IKernelWrapper kernelWrapper = new DamPipingBlighKernelWrapper(); - var damKernelInput = new DamKernelInput(); - damKernelInput.Location = damProjectData.Dike.Locations[locationIndex]; - damKernelInput.DesignScenario = null; - IKernelDataInput kernelDataInput = kernelWrapper.Prepare(damKernelInput); - IKernelDataOutput kernelDataOutput = new DamPipingBlighOutput(); - kernelWrapper.Execute(kernelDataInput, out calculationMessages); - DesignResult designResult; - kernelWrapper.PostProcess(kernelDataOutput, out designResult); + var location = damProjectData.Dike.Locations[locationIndex]; + for (int designScenarioIndex = 0; designScenarioIndex < location.Scenarios.Count; designScenarioIndex++) + { + var calculationMessages = new List(); + IKernelWrapper kernelWrapper = new DamPipingBlighKernelWrapper(); + var damKernelInput = new DamKernelInput(); + damKernelInput.Location = location; + damKernelInput.DesignScenario = location.Scenarios[designScenarioIndex]; + IKernelDataInput kernelDataInput = kernelWrapper.Prepare(damKernelInput); + IKernelDataOutput kernelDataOutput = new DamPipingBlighOutput(); + kernelWrapper.Execute(kernelDataInput, out calculationMessages); + DesignResult designResult; + kernelWrapper.PostProcess(damKernelInput, kernelDataOutput, out designResult); + } } return null; Index: dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs =================================================================== diff -u -r563 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 563) +++ dam engine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 564) @@ -118,6 +118,15 @@ } } } + + // Set locations for scenarios + foreach (var location in project.Dike.Locations) + { + foreach (var designScenario in location.Scenarios) + { + designScenario.Location = location; + } + } } private static void TransferSoils(Soil[] inputSoils, List soils) Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs =================================================================== diff -u -r502 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 502) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 564) @@ -11,9 +11,18 @@ namespace Deltares.DamEngine.Calculators.KernelWrappers.DamPipingBligh { + /// + /// Wrapper around Bligh piping kernel + /// + /// public class DamPipingBlighKernelWrapper : IKernelWrapper { + /// + /// Create the kernel input. + /// + /// The dam kernel input. + /// public IKernelDataInput Prepare(DamKernelInput damKernelInput) { // TODO: this is just fake data @@ -28,6 +37,12 @@ }; } + /// + /// Validates the kernel data input. + /// + /// The kernel data input. + /// The messages. + /// public int Validate(IKernelDataInput kernelDataInput, out List messages) { var calculatorBligh = PipingCalculatorBligh(kernelDataInput); @@ -40,6 +55,12 @@ return messages.Count; } + /// + /// Executes the kernel. + /// + /// The kernel data input. + /// The messages. + /// public IKernelDataOutput Execute(IKernelDataInput kernelDataInput, out List messages) { var calculatorBligh = PipingCalculatorBligh(kernelDataInput); @@ -70,7 +91,14 @@ return calculator; } - public void PostProcess(IKernelDataOutput kernelDataOutput, out DesignResult designResult) + /// + /// Fills the design results with the kernel output. + /// + /// The dam kernel input. + /// The kernel data output. + /// The design result. + /// No output object defined for Bligh + public void PostProcess(DamKernelInput damKernelInput, IKernelDataOutput kernelDataOutput, out DesignResult designResult) { DamPipingBlighOutput damPipingBlighOutput = kernelDataOutput as DamPipingBlighOutput; if (damPipingBlighOutput == null) Index: dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamMacroStabilityTests.cs =================================================================== diff -u -r543 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamMacroStabilityTests.cs (.../DamMacroStabilityTests.cs) (revision 543) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamMacroStabilityTests.cs (.../DamMacroStabilityTests.cs) (revision 564) @@ -75,7 +75,7 @@ // output.yyy = 2.2; DesignResult result; - kernelWrapper.PostProcess(output, out result); + kernelWrapper.PostProcess(null, output, out result); // ToDo zant specify output // Assert.AreEqual(output.xxx, result.StabilityDesignResults.SafetyFactor); } @@ -103,7 +103,7 @@ { var kernelWrapper = new DamMacroStabilityKernelWrapper(); DesignResult result; - kernelWrapper.PostProcess(null, out result); + kernelWrapper.PostProcess(null, null, out result); } } } Index: dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamPipingSellmeijer4ForcesTests.cs =================================================================== diff -u -r519 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamPipingSellmeijer4ForcesTests.cs (.../DamPipingSellmeijer4ForcesTests.cs) (revision 519) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators.Tests/DamPipingSellmeijer4ForcesTests.cs (.../DamPipingSellmeijer4ForcesTests.cs) (revision 564) @@ -44,7 +44,7 @@ // Fill the design results DesignResult result; - kernelWrapper.PostProcess(output, out result); + kernelWrapper.PostProcess(null, output, out result); Assert.AreEqual(11.899117458988471, result.PipingDesignResults.Sellmeijer4ForcesFactor, diff); Assert.AreEqual(4.7596469835953883, result.PipingDesignResults.Sellmeijer4ForcesHcritical, diff); } @@ -90,7 +90,7 @@ output.Hc = 2.2; DesignResult result; - kernelWrapper.PostProcess(output, out result); + kernelWrapper.PostProcess(null, output, out result); Assert.AreEqual(output.FoSp, result.PipingDesignResults.Sellmeijer4ForcesFactor); Assert.AreEqual(output.Hc, result.PipingDesignResults.Sellmeijer4ForcesHcritical); } @@ -122,7 +122,7 @@ { var kernelWrapper = new DamPipingSellmeijer4ForcesKernelWrapper(); DesignResult result; - kernelWrapper.PostProcess(null, out result); + kernelWrapper.PostProcess(null, null, out result); } } } Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStability/DamMacroStabilityKernelWrapper.cs =================================================================== diff -u -r544 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStability/DamMacroStabilityKernelWrapper.cs (.../DamMacroStabilityKernelWrapper.cs) (revision 544) +++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStability/DamMacroStabilityKernelWrapper.cs (.../DamMacroStabilityKernelWrapper.cs) (revision 564) @@ -105,10 +105,12 @@ /// /// Fills the design results with the kernel output. /// + /// The dam kernel input. + /// The . /// The kernel data output. /// The design result. /// - public void PostProcess(IKernelDataOutput kernelDataOutput, out DesignResult designResult) + public void PostProcess(DamKernelInput damKernelInput, IKernelDataOutput kernelDataOutput, out DesignResult designResult) { DamMacroStabilityOutput damPipingOutput = kernelDataOutput as DamMacroStabilityOutput; if (damPipingOutput == null) @@ -127,7 +129,7 @@ var stabilityDesignResults = new StabilityDesignResults(); // ToDo zant -// stabilityDesignResults.SafetyFactor = damPipingOutput.; + // stabilityDesignResults.SafetyFactor = damPipingOutput.; designResult.StabilityDesignResults = stabilityDesignResults; } } Index: dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs =================================================================== diff -u -r563 -r564 --- dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 563) +++ dam engine/trunk/src/Deltares.DamEngine.Interface.Tests/FillDamFromXmlInputTests.cs (.../FillDamFromXmlInputTests.cs) (revision 564) @@ -179,6 +179,7 @@ for (int j = 0; j < 3; j++) { var designScenario = FillDesignScenario((i +1) * (j + 1)); // The parameter factor is used to create unique data for the design scenarios + designScenario.Location = location; location.Scenarios.Add(designScenario); } dike.Locations.Add(location);