Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment.xml =================================================================== diff -u --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment.xml (revision 0) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment.xml (revision 1119) @@ -0,0 +1,11655 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Standard/Calculation/ICalculation.cs =================================================================== diff -u -r877 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Data/Standard/Calculation/ICalculation.cs (.../ICalculation.cs) (revision 877) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/Standard/Calculation/ICalculation.cs (.../ICalculation.cs) (revision 1119) @@ -36,8 +36,8 @@ public interface ICalculation { - CalculationResult RegisterProgress(ProgressDelegate progressDelegate); - CalculationResult RegisterGetValues(GetValuesDelegate getValuesDelegate); - CalculationResult RegisterSetValues(SetValuesDelegate setValuesDelegate); + //CalculationResult RegisterProgress(ProgressDelegate aProgressDelegate); + //CalculationResult RegisterGetValues(GetValuesDelegate aGetValuesDelegate); + //CalculationResult RegisterSetValues(SetValuesDelegate setValuesDelegate); } } \ No newline at end of file Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs =================================================================== diff -u -r1013 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 1013) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillXmlOutputFromDam.cs (.../FillXmlOutputFromDam.cs) (revision 1119) @@ -19,7 +19,6 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Io.XmlOutput; @@ -61,88 +60,7 @@ output.Results.CalculationResults = new CalculationResults(); CreateDesignResultsOutput(damProjectData, output); - - // Calculation results (per location) - // output.Results.CalculationResults.LocationResults = new CalculationResultsLocationResult[damProjectData.LocationJobs.Count]; - // var jobtel = 0; - // foreach (var locationJob in damProjectData.LocationJobs) - // { - // var outputLocationResult = new CalculationResultsLocationResult(); - // - // // Stability TimeSerie (later) - // - // // Piping TimeSerie (later) - // - // // RWScenarios results - // outputLocationResult.RWScenariosResult = new CalculationResultsLocationResultRWScenariosResult(); - // outputLocationResult.RWScenariosResult.SafetyFactor = locationJob.LocationResult.RWScenariosResult.SafetyFactor; - // outputLocationResult.RWScenariosResult.CalculationResult = locationJob.LocationResult.RWScenariosResult.CalculationResult; - // outputLocationResult.RWScenariosResult.RWScenarioResult = new RWScenarioResult[locationJob.LocationResult.RWScenariosResult.RWScenarioResults.Count]; - // var scentel = 0; - // foreach (var rwScenarioResult in locationJob.LocationResult.RWScenariosResult.RWScenarioResults) - // { - // var outputRwScenarioResult = new RWScenarioResult(); - // outputRwScenarioResult.LoadSituation = rwScenarioResult.LoadSituation; - // outputRwScenarioResult.DikeDrySensitivity = rwScenarioResult.DikeDrySensitivity; - // outputRwScenarioResult.HydraulicShortcutType = rwScenarioResult.HydraulicShortcutType; - // outputRwScenarioResult.UpliftType = rwScenarioResult.UpliftType; - // outputRwScenarioResult.ModelOption = rwScenarioResult.ModelOption; - // outputRwScenarioResult.ScenarioType = rwScenarioResult.ScenarioType; - // outputRwScenarioResult.CalculationResult = rwScenarioResult.CalculationResult; - // outputRwScenarioResult.SafetyFactor = rwScenarioResult.SafetyFactor; - // outputRwScenarioResult.RWScenarioProfileResults = new RWScenarioResultRWScenarioProfileResult[rwScenarioResult.RWScenarioProfileResults.Count]; - // var proftel = 0; - // foreach (var profileResult in rwScenarioResult.RWScenarioProfileResults) - // { - // var outputProfileResult = new RWScenarioResultRWScenarioProfileResult(); - // outputProfileResult.LocationName = profileResult.LocationName; - // outputProfileResult.LoadSituation = profileResult.LoadSituation; - // outputProfileResult.DikeDrySensitivity = profileResult.DikeDrySensitivity; - // outputProfileResult.HydraulicShortcutType = profileResult.HydraulicShortcutType; - // outputProfileResult.UpliftType = profileResult.UpliftType; - // outputProfileResult.MStabModelOption = profileResult.MstabModelOption; - // outputProfileResult.PipingModelOption = profileResult.PipingModelOption; - // outputProfileResult.ScenarioType = profileResult.ScenarioType; - // outputProfileResult.SoilProfileName = profileResult.SoilProfileName; - // outputProfileResult.SoilProfileProbability = profileResult.SoilProfileProbability; - // //outputProfileResult.FailureMechanismType = profileResult.FailureMechanismType; - // outputProfileResult.BaseFileName = profileResult.BaseFileName; - // outputProfileResult.RWResult = new RWResult(); - // //outputProfileResult.RWResult.RWResultType = profileResult.RwResultType; - // outputProfileResult.RWResult.SafetyFactor = profileResult.SafetyFactor; - // outputProfileResult.RWResult.ProbabilityOfFailure = profileResult.ProbabilityOfFailure; - // //outputProfileResult.RWResult.CalculationResult = profileResult.CalculationResult; - // outputLocationResult.RWScenariosResult.RWScenarioResult[scentel].RWScenarioProfileResults[proftel] = outputProfileResult; - // proftel++; - // } - // outputLocationResult.RWScenariosResult.RWScenarioResult[scentel] = outputRwScenarioResult; - // scentel++; - // - // // RWSchematizationFactors Result - // outputLocationResult.RWSchematizationFactorsResult = new CalculationResultsLocationResultRWSchematizationFactorsResult(); - // outputLocationResult.RWSchematizationFactorsResult.RWSchematizationFactorResult = new CalculationResultsLocationResultRWSchematizationFactorsResultRWSchematizationFactorResult[damProjectData.SchematizationFactors.Count]; - // var factortel = 0; - // foreach (var rwSchematizationFactorResult in damProjectData.SchematizationFactors) - // { - // var factorResult = new CalculationResultsLocationResultRWSchematizationFactorsResultRWSchematizationFactorResult(); - // factorResult.LocationName = rwSchematizationFactorResult.LocationName; - // //factorResult.SchematizationType = rwSchematizationFactorResult.SchematizationType; - // factorResult.SoilProfileName = rwSchematizationFactorResult.SoilProfileName; - // factorResult.OriginalDecisiveSoilProfileName = rwSchematizationFactorResult.OriginalDecisiveSoilProfileName; - // factorResult.SchematizationFactor = rwSchematizationFactorResult.SchematizationFactor; - // factorResult.SummedProfileProbability = rwSchematizationFactorResult.SummedProfileProbability; - // //factorResult.DecisiveScenarioName = rwSchematizationFactorResult.DecisiveScenarioName; - // factorResult.DetrimentFactor = rwSchematizationFactorResult.DetrimentFactor; - // factorResult.SafetyFactor = rwSchematizationFactorResult.SafetyFactor; - // //factorResult.CalculationResult = rwSchematizationFactorResult.CalculationResult; - // outputLocationResult.RWSchematizationFactorsResult.RWSchematizationFactorResult[factortel] = factorResult; - // factortel++; - // } - // - // } - // output.Results.CalculationResults.LocationResults[jobtel] = outputLocationResult; - // jobtel++; - // } + CreateLocationResultsOutput(damProjectData, output); return output; } @@ -335,5 +253,91 @@ desResult.StabilityDesignResults.NumberOfIterationsSpecified = designResult.StabilityDesignResults.NumberOfIterations.HasValue; if (designResult.StabilityDesignResults.NumberOfIterations.HasValue) desResult.StabilityDesignResults.NumberOfIterations = designResult.StabilityDesignResults.NumberOfIterations.Value; } + + private static void CreateLocationResultsOutput(DamProjectData damProjectData, Output output) + { + // Calculation results (per location) + output.Results.CalculationResults.LocationResults = new CalculationResultsLocationResult[damProjectData.LocationJobs.Count]; + var jobtel = 0; + foreach (var locationJob in damProjectData.LocationJobs) + { + var outputLocationResult = new CalculationResultsLocationResult(); + + // Stability TimeSerie (later) + + // Piping TimeSerie (later) + + // RegionalScenarios results + outputLocationResult.RegionalScenariosResult = new CalculationResultsLocationResultRegionalScenariosResult(); + outputLocationResult.RegionalScenariosResult.SafetyFactor = locationJob.LocationResult.RegionalScenariosResult.SafetyFactor; + outputLocationResult.RegionalScenariosResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(locationJob.LocationResult.RegionalScenariosResult.CalculationResult); + outputLocationResult.RegionalScenariosResult.RegionalScenarioResult = new RegionalScenarioResult[locationJob.LocationResult.RegionalScenariosResult.RegionalScenarioResults.Count]; + var scentel = 0; + foreach (var rwScenarioResult in locationJob.LocationResult.RegionalScenariosResult.RegionalScenarioResults) + { + var outputRwScenarioResult = new RegionalScenarioResult(); + outputRwScenarioResult.LoadSituation = ConversionHelper.ConvertToOutputLoadSituation(rwScenarioResult.LoadSituation); + outputRwScenarioResult.DikeDrySensitivity = ConversionHelper.ConvertToOutputDikeDrySensitivity(rwScenarioResult.DikeDrySensitivity); + outputRwScenarioResult.HydraulicShortcutType = ConversionHelper.ConvertToOutputHydraulicShortcutType(rwScenarioResult.HydraulicShortcutType); + outputRwScenarioResult.UpliftType = ConversionHelper.ConvertToOutputUpliftType(rwScenarioResult.UpliftType); + outputRwScenarioResult.ModelOption = ConversionHelper.ConvertToOutputMStabModelType(rwScenarioResult.ModelOption); + outputRwScenarioResult.ScenarioType = ConversionHelper.ConvertToOutputScenarioType(rwScenarioResult.ScenarioType); + outputRwScenarioResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(rwScenarioResult.CalculationResult); + outputRwScenarioResult.SafetyFactor = rwScenarioResult.SafetyFactor; + outputRwScenarioResult.RegionalScenarioProfileResults = new RegionalScenarioResultRegionalScenarioProfileResult[rwScenarioResult.RegionalScenarioProfileResults.Count]; + var proftel = 0; + foreach (var profileResult in rwScenarioResult.RegionalScenarioProfileResults) + { + var outputProfileResult = new RegionalScenarioResultRegionalScenarioProfileResult(); + outputProfileResult.LocationName = profileResult.LocationName; + outputProfileResult.LoadSituation = ConversionHelper.ConvertToOutputLoadSituation(profileResult.LoadSituation); + outputProfileResult.DikeDrySensitivity = ConversionHelper.ConvertToOutputDikeDrySensitivity(profileResult.DikeDrySensitivity); + outputProfileResult.HydraulicShortcutType = ConversionHelper.ConvertToOutputHydraulicShortcutType(profileResult.HydraulicShortcutType); + outputProfileResult.UpliftType = ConversionHelper.ConvertToOutputUpliftType(profileResult.UpliftType); + outputProfileResult.MStabModelOption = ConversionHelper.ConvertToOutputMStabModelType(profileResult.MstabModelOption); + outputProfileResult.PipingModelOption = ConversionHelper.ConvertToOutputPipingModelType(profileResult.PipingModelOption); + outputProfileResult.ScenarioType = ConversionHelper.ConvertToOutputScenarioType(profileResult.ScenarioType); + outputProfileResult.SoilProfileName = profileResult.SoilProfileName; + outputProfileResult.SoilProfileProbability = profileResult.SoilProfileProbability; + outputProfileResult.FailureMechanismType = ConversionHelper.ConvertToInputFailureMechanismSystemType(profileResult.FailureMechanismType); + outputProfileResult.BaseFileName = profileResult.BaseFileName; + outputProfileResult.RegionalResult = new RegionalResult(); + outputProfileResult.RegionalResult.RegionalResultType = ConversionHelper.ConvertToOutputRegionalResultType(profileResult.RegionalResultType); + outputProfileResult.RegionalResult.SafetyFactor = profileResult.SafetyFactor; + outputProfileResult.RegionalResult.ProbabilityOfFailure = profileResult.ProbabilityOfFailure; + outputProfileResult.RegionalResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(profileResult.CalculationResult); + outputLocationResult.RegionalScenariosResult.RegionalScenarioResult[scentel].RegionalScenarioProfileResults[proftel] = outputProfileResult; + proftel++; + } + outputLocationResult.RegionalScenariosResult.RegionalScenarioResult[scentel] = outputRwScenarioResult; + scentel++; + + // RWSchematizationFactors Result later + // Note that xsd should be adapted first: the types should be stored as int, not as string! This to be able to reuse the converters +// outputLocationResult.RegionalSchematizationFactorsResult = new CalculationResultsLocationResultRegionalSchematizationFactorsResult(); +// outputLocationResult.RegionalSchematizationFactorsResult.RegionalSchematizationFactorResult = new CalculationResultsLocationResultRegionalSchematizationFactorsResultRegionalSchematizationFactorResult[damProjectData.SchematizationFactors.Count]; +// var factortel = 0; +// foreach (var rwSchematizationFactorResult in damProjectData.SchematizationFactors) +// { +// var factorResult = new CalculationResultsLocationResultRegionalSchematizationFactorsResultRegionalSchematizationFactorResult(); +// factorResult.LocationName = rwSchematizationFactorResult.LocationName; +// factorResult.SchematizationType = rwSchematizationFactorResult.SchematizationType; +// factorResult.SoilProfileName = rwSchematizationFactorResult.SoilProfileName; +// factorResult.OriginalDecisiveSoilProfileName = rwSchematizationFactorResult.OriginalDecisiveSoilProfileName; +// factorResult.SchematizationFactor = rwSchematizationFactorResult.SchematizationFactor; +// factorResult.SummedProfileProbability = rwSchematizationFactorResult.SummedProfileProbability; +// factorResult.DecisiveRegionalScenarioName = rwSchematizationFactorResult.DecisiveScenarioName; +// factorResult.DetrimentFactor = rwSchematizationFactorResult.DetrimentFactor; +// factorResult.SafetyFactor = rwSchematizationFactorResult.SafetyFactor; +// factorResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(rwSchematizationFactorResult.CalculationResult); +// outputLocationResult.RegionalSchematizationFactorsResult.RegionalSchematizationFactorResult[factortel] = factorResult; +// factortel++; +// } + + } + output.Results.CalculationResults.LocationResults[jobtel] = outputLocationResult; + jobtel++; + } + } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs =================================================================== diff -u -r1117 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs (.../RegionalScenariosCalculation.cs) (revision 1117) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs (.../RegionalScenariosCalculation.cs) (revision 1119) @@ -22,14 +22,21 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.Linq; using System.Text.RegularExpressions; +using Deltares.DamEngine.Calculators.KernelWrappers.Common; +using Deltares.DamEngine.Calculators.KernelWrappers.Interfaces; +using Deltares.DamEngine.Calculators.Properties; using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.General.Results; using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.RegionalAssessmentResults; using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.DamEngine.Data.Standard.Language; using Deltares.DamEngine.Data.Standard.Logging; +using Deltares.DamPiping.BlighCalculator; +using Deltares.DamPiping.Sellmeijer4ForcesCalculator; namespace Deltares.DamEngine.Calculators.DikesAssessmentRegional { @@ -42,27 +49,153 @@ public RegionalScenariosCalculationException(string message) : base(message) { } } + /// + /// Class to perform the calculation of reginal scenarios + /// + /// public class RegionalScenariosCalculation : ICalculation { + private DamProjectData damProjectData; + + public List Execute(DamProjectData aDamProjectData) + { + damProjectData = aDamProjectData; + maxCalculationCores = damProjectData.MaxCalculationCores; + var dj = damProjectData.DikeJob; + evaluationJob = damProjectData.GetEvaluationJob(); + //evaluationJob.Locations.AddRange(); + Run(); + return new List(); + } + + private IKernelWrapper CreateKernelWrapperforJob(DamFailureMechanismeCalculationSpecification currentSpecification, + Location location, SoilGeometryProbability soilGeometryProbability, out IKernelDataInput kernelDataInput, + out IKernelDataOutput kernelDataOutput) + { + IKernelWrapper kernelWrapper = KernelWrapperHelper.CreateKernelWrapper(currentSpecification); + + if (kernelWrapper == null) + { + throw new NotImplementedException(Resources.DesignCalculatorKernelNotImplemented); + } + + //damProjectData.DesignCalculations = new List(); + var calculationMessages = new List(); + // Prepare input + var damKernelInput = new DamKernelInput(); + var projectPath = damProjectData.ProjectPath != "" ? damProjectData.ProjectPath : Directory.GetCurrentDirectory(); + damKernelInput.ProjectDir = projectPath; + damKernelInput.CalculationDir = Path.Combine(projectPath, damProjectData.CalculationMap); + damKernelInput.Location = location; + damKernelInput.SubSoilScenario = soilGeometryProbability; + //damKernelInput.DesignScenario = location.Scenarios[designScenarioIndex]; + damKernelInput.DamFailureMechanismeCalculationSpecification = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; + damKernelInput.RiverLevelHigh = damKernelInput.DesignScenario.RiverLevel;// #Bka hier geen Dscen + damKernelInput.RiverLevelLow = damKernelInput.DesignScenario.RiverLevelLow;// #Bka hier geen Dscen + AnalysisType analysisType = DamProjectCalculationSpecification.SelectedAnalysisType; + // SynchronizeDesignScenarioDataWithLocationData(damKernelInput.DesignScenario, damKernelInput.Location); + // IKernelDataInput kernelDataInput; + //IKernelDataOutput kernelDataOutput; + PrepareResult prepareResult = kernelWrapper.Prepare(damKernelInput, 0, out kernelDataInput, out kernelDataOutput); + + // Sometimes the kernelDataInput is not created (p.e when soilprofileprobablility is meant for + // stability where Piping calc is wanted). In that case, do nothing but just skip. + if (prepareResult == PrepareResult.Successful) + { + // switch (analysisType) + // { + // case AnalysisType.AdaptGeometry: + // PerformDesignCalculation(kernelWrapper, kernelDataInput, kernelDataOutput, + // damKernelInput, calculationMessages, damProjectData.DesignCalculations); + // break; + // case AnalysisType.NoAdaption: + // PerformSingleCalculation(kernelWrapper, kernelDataInput, kernelDataOutput, + // damKernelInput, calculationMessages, damProjectData.DesignCalculations); + // break; + // + // } + } + else + { + if (prepareResult == PrepareResult.NotRelevant) + { + calculationMessages.Add(new LogMessage(LogMessageType.Info, null, + string.Format(Resources.DesignCalculatorIrrelevant, + location.Name, + soilGeometryProbability.ToString(), + damKernelInput.DesignScenario.LocationScenarioID))); // #Bka hier geen Dscen + } + if (prepareResult == PrepareResult.Failed) + { + calculationMessages.Add(new LogMessage(LogMessageType.Error, null, + string.Format(Resources.DesignCalculatorPrepareError, + location.Name, + soilGeometryProbability.ToString(), + damKernelInput.DesignScenario.LocationScenarioID)));// #Bka hier geen Dscen + } + } + return kernelWrapper;//calculationMessages; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + private EvaluationJob evaluationJob = null; - private GetValuesDelegate getValuesDelegate = null; - private ProgressDelegate progressDelegate = null; - private SendMessageDelegate sendMessageDelegate = null; + private GetValuesDelegate getValuesDelegate; + private ProgressDelegate progressDelegate; + private SendMessageDelegate sendMessageDelegate; private string mstabExePath = @".\DGeoStability.exe"; private int maxCalculationCores = 255; private Dictionary runningJobs = new Dictionary(); private bool isSkipStabilityCalculation = false; - + + /// + /// Gets or sets the type of the piping model. + /// + /// + /// The type of the piping model. + /// public PipingModelType PipingModelType { get; set; } + + /// + /// Gets or sets the m stab parameters. + /// + /// + /// The m stab parameters. + /// public MStabParameters MStabParameters { get; set; } - public RegionalScenariosCalculation() - { - } - #region ICalculation Members + /// + /// Gets the results. + /// + /// The results. + /// public CalculationResult GetResults(ref string results) { // try @@ -78,6 +211,11 @@ return CalculationResult.UnexpectedError; } + /// + /// Loads the specified input. + /// + /// The input. + /// public CalculationResult Load(string input) { // try @@ -93,48 +231,82 @@ return CalculationResult.UnexpectedError; } - public CalculationResult RegisterGetValues(GetValuesDelegate getValuesDelegate) + /// + /// Registers the get values. + /// + /// The get values delegate. + /// + public CalculationResult RegisterGetValues(GetValuesDelegate aGetValuesDelegate) { - this.getValuesDelegate = getValuesDelegate; + getValuesDelegate = aGetValuesDelegate; return CalculationResult.Succeeded; } - public CalculationResult RegisterProgress(ProgressDelegate progressDelegate) + /// + /// Registers the progress. + /// + /// The progress delegate. + /// + public CalculationResult RegisterProgress(ProgressDelegate aProgressDelegate) { - this.progressDelegate = progressDelegate; + progressDelegate = aProgressDelegate; return CalculationResult.Succeeded; } + /// + /// Registers the send debug information. + /// + /// The send debug information delegate. + /// public CalculationResult RegisterSendDebugInfo(SendDebugInfodelegate sendDebugInfoDelegate) { return CalculationResult.Succeeded; } - public CalculationResult RegisterSendMessage(SendMessageDelegate sendMessageDelegate) + /// + /// Registers the send message. + /// + /// The send message delegate. + /// + public CalculationResult RegisterSendMessage(SendMessageDelegate aSendMessageDelegate) { - this.sendMessageDelegate = sendMessageDelegate; + sendMessageDelegate = aSendMessageDelegate; return CalculationResult.Succeeded; } + /// + /// Registers the set values. + /// + /// The set values delegate. + /// public CalculationResult RegisterSetValues(SetValuesDelegate setValuesDelegate) { return CalculationResult.Succeeded; } + /// + /// Registers the user abort. + /// + /// The user abort delegate. + /// public CalculationResult RegisterUserAbort(UserAbortDelegate userAbortDelegate) { return CalculationResult.Succeeded; } + /// + /// Runs this instance. + /// + /// public CalculationResult Run() { try { - List tasks = this.FillQueue(); + List tasks = FillQueue(); - General.Parallel.Run(tasks, this.RunTask, this.progressDelegate, this.MaxCalculationCores); - this.FillResults(tasks); + General.Parallel.Run(tasks, RunTask, progressDelegate, maxCalculationCores); + FillResults(tasks); return CalculationResult.Succeeded; } @@ -145,50 +317,66 @@ } } + /// + /// Validates this instance. + /// + /// public CalculationResult Validate() { return CalculationResult.Succeeded; } #endregion + /// + /// Gets the version. + /// + /// + /// The version. + /// public string Version { get { return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); } } + /// + /// Gets or sets the mstab executable path. + /// + /// + /// The mstab executable path. + /// public string MStabExePath { get { return mstabExePath; } set { mstabExePath = value; } } + /// + /// Gets or sets a value indicating whether this instance is skip stability calculation. + /// + /// + /// true if this instance is skip stability calculation; otherwise, false. + /// public bool IsSkipStabilityCalculation { get { return isSkipStabilityCalculation; } set { isSkipStabilityCalculation = value; } } - public int MaxCalculationCores - { - get { return maxCalculationCores; } - set { maxCalculationCores = value; } - } - private List FillQueue() { List tasks = new List(); - this.evaluationJob.FailedEvaluatedLocations = new List(); - foreach (Location location in this.evaluationJob.Locations) + evaluationJob.FailedEvaluatedLocations = new List(); + foreach (var location in evaluationJob.Locations) { if (location.Segment == null) { // Add this location to the failed locations - if (this.evaluationJob.FailedEvaluatedLocations.IndexOf(location) < 0) + if (evaluationJob.FailedEvaluatedLocations.IndexOf(location) < 0) { - this.evaluationJob.FailedEvaluatedLocations.Add(location); - var locationHasNoSegment = LocalizationManager.GetTranslatedText(this.GetType(), "LocationHasNoSegment"); + evaluationJob.FailedEvaluatedLocations.Add(location); + var locationHasNoSegment = LocalizationManager.GetTranslatedText(GetType(), "LocationHasNoSegment"); sendMessageDelegate(new LogMessage(LogMessageType.Error, location, locationHasNoSegment)); } } @@ -202,10 +390,10 @@ FailureMechanismSystemType.StabilityInside)).ToList(); if (soilGeometryProbabilities.Count == 0) { - this.evaluationJob.FailedEvaluatedLocations.Add(location); + evaluationJob.FailedEvaluatedLocations.Add(location); sendMessageDelegate( - new LogMessage(LogMessageType.Warning, location, String.Format("Location has no soilprofiles: ") + - String.Format("Segment: {0}", location.Segment.Name))); + new LogMessage(LogMessageType.Warning, location, string.Format("Location has no soilprofiles: ") + + string.Format("Segment: {0}", location.Segment.Name))); } else @@ -214,26 +402,26 @@ { if (soilGeometryProbability.SoilProfileType == SoilProfileType.ProfileType2D || soilGeometryProbability.SoilProfileType == SoilProfileType.ProfileTypeStiFile) { - this.evaluationJob.FailedEvaluatedLocations.Add(location); + evaluationJob.FailedEvaluatedLocations.Add(location); sendMessageDelegate(new LogMessage(LogMessageType.Warning, location, LocalizationManager.GetTranslatedText(this, "Geometry2DNotSupportedInRegionalAssessment") + - String.Format("Segment: {0}", location.Segment.Name))); + string.Format("Segment: {0}", location.Segment.Name))); } else { SoilProfile soilProfile = soilGeometryProbability.SoilProfile1D; - IList rwScenarios = null; + IList rwScenarios; try { - rwScenarios = this.GetRWScenarios(location, soilGeometryProbability); + rwScenarios = GetRegionalScenarios(location, soilGeometryProbability); } catch (Exception e) { rwScenarios = null; // Add this location to the failed locations - if (this.evaluationJob.FailedEvaluatedLocations.IndexOf(location) < 0) + if (evaluationJob.FailedEvaluatedLocations.IndexOf(location) < 0) { - this.evaluationJob.FailedEvaluatedLocations.Add(location); + evaluationJob.FailedEvaluatedLocations.Add(location); sendMessageDelegate( new LogMessage(LogMessageType.Warning, location, String.Format("Cannot generate scenarios: {0}", e.Message) + String.Format("Soilprofile: {0}", soilProfile.Name))); @@ -255,11 +443,13 @@ return tasks; } - private IList GetRWScenarios(Location location, SoilGeometryProbability soilGeometryProbability) + private IList GetRegionalScenarios(Location location, SoilGeometryProbability soilGeometryProbability) { - RegionalScenarioSelector selector = new RegionalScenarioSelector(); - selector.PipingModelType = PipingModelType; - selector.MStabParameters = MStabParameters; + RegionalScenarioSelector selector = new RegionalScenarioSelector + { + PipingModelType = PipingModelType, + MStabParameters = MStabParameters + }; return selector.GetScenarios(location, soilGeometryProbability); } @@ -311,8 +501,8 @@ /// private void ProcessJobPiping(RegionalScenarioProfileResult job) { -// if (job.Location.ModelFactors.UpliftCriterionPiping.HasValue) -// { + if (job.Location.ModelFactors.UpliftCriterionPiping.HasValue) + { // var modelParametersForPLLines = new ModelParametersForPlLines(); // var calculator = GetCalculatorForPipingModel(job, modelParametersForPLLines); // double waterLevel; @@ -327,9 +517,9 @@ // } // //job.SoilGeometryProbability.SoilProfile1D.EnsureUniqueLayerIds(); // var calculationName = GetCalculationNameForPipingCalculator(job); -// calculator.FilenameCalculation = Path.Combine(Path.Combine(DamProjectData.ProjectWorkingPath, job.FailureMechanismType.ToString()), calculationName); +// calculator.FilenameCalculation = Path.Combine(Path.Combine(damProjectData.ProjectPath, job.FailureMechanismType.ToString()), calculationName); // calculator.IsHydraulicShortcut = (job.HydraulicShortcutType == HydraulicShortcutType.HydraulicShortcut); -// double? pipingFactor = calculator.CalculatePipingFactor(job.Location, job.Location.LocalXZSurfaceLine2, job.SoilGeometryProbability.SoilProfile1D, waterLevel); +// double? pipingFactor = calculator.CalculatePipingFactor(job.Location, job.Location.SurfaceLine, job.SoilGeometryProbability.SoilProfile1D, waterLevel); // job.BaseFileName = calculator.FilenameCalculation; // // job.RegionalResultType = RegionalResultType.SafetyFactor; @@ -346,11 +536,11 @@ // job.SafetyFactor = double.NaN; // job.CalculationResult = CalculationResult.RunFailed; // } -// } -// else -// { -// throw new RegionalScenariosCalculationException(String.Format("Uplift criterion not defined for location {0}", job.Location.Name)); -// } //##Bka + } + else + { + throw new RegionalScenariosCalculationException(String.Format("Uplift criterion not defined for location {0}", job.Location.Name)); + } } @@ -380,17 +570,14 @@ /// /// /// proper piping calculator -// private PipingCalculator GetCalculatorForPipingModel(RWScenarioProfileResult job, ModelParametersForPlLines modelParametersForPLLines) +// private PipingCalculator GetCalculatorForPipingModel(RegionalScenarioProfileResult job, ModelParametersForPLLines modelParametersForPlLines) // { // PipingCalculator calculator; // switch (job.PipingModelOption) // { // case PipingModelType.SellmeijerVnk: calculator = new PipingCalculatorSellmeijer(modelParametersForPLLines, // 1.0, null, null, null, job.Location.ModelFactors.UpliftCriterionPiping.Value); // break; -// case PipingModelType.Sellmeijer2Forces: calculator = new PipingCalculatorSellmeijer2Forces(modelParametersForPLLines, -// 1.0, null, null, job.Location.ModelFactors.UpliftCriterionPiping.Value); -// break; // case PipingModelType.Sellmeijer4Forces: calculator = new PipingCalculatorSellmeijer4Forces(modelParametersForPLLines, // 1.0, null, null, job.Location.ModelFactors.UpliftCriterionPiping.Value); // break; @@ -409,52 +596,65 @@ /// private void ProcessJobStability(RegionalScenarioProfileResult job) { + // StabilityCalculation calculator = new StabilityCalculation(); + var currentSpecification = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; + currentSpecification.FailureMechanismSystemType = job.FailureMechanismType; + IKernelDataInput kernelDataInput; + IKernelDataOutput kernelDataOutput; + var calculator = CreateKernelWrapperforJob(currentSpecification, job.Location, job.SoilGeometryProbability, + out kernelDataInput, out kernelDataOutput); + lock (runningJobs) + { + runningJobs[calculator] = job; + } -// lock (runningJobs) -// { -// runningJobs[calculator] = job; -// } - // calculator.MStabExePath = this.MStabExePath; // calculator.RegisterSendMessage(this.SendStabilityMessage); // -// string soilDatabaseName = job.Location.StabilityOptions.SoilDatabaseName; - // DamFailureMechanismeCalculationSpecification damCalculation = - // calculator.GetSpecification(this.evaluationJob.DikeName, soilDatabaseName, job.Location, new SoilGeometry(job.SoilGeometryProbability.SoilProfile1D, null), - // (MStabModelType)job.MstabModelOption, job.LoadSituation, job.DikeDrySensitivity, job.HydraulicShortcutType, MStabParameters); +// string soilDatabaseName = job.Location.StabilityOptions.SoilDatabaseName; +// DamFailureMechanismeCalculationSpecification damCalculation = +// calculator.GetSpecification(this.evaluationJob.DikeName, soilDatabaseName, job.Location, new SoilGeometry(job.SoilGeometryProbability.SoilProfile1D, null), +// (MStabModelType)job.MstabModelOption, job.LoadSituation, job.DikeDrySensitivity, job.HydraulicShortcutType, MStabParameters); // // calculator.SaveToFile(damCalculation.FailureMechanismParametersMStab); // string inputFile = damCalculation.FailureMechanismParametersMStab.MStabParameters.ProjectFileName; // // job.BaseFileName = inputFile.Replace(DamProject.ProjectWorkingPath, @"").Replace(".sti", ""); // calculator.Load(inputFile); -// job.CalculationResult = calculator.Run(); + List messages; + calculator.Execute(kernelDataInput, kernelDataOutput, out messages); + job.CalculationResult = CalculationResult.Succeeded; //Run(); if (job.CalculationResult == CalculationResult.Succeeded) { - string results = ""; - -// job.CalculationResult = calculator.GetResults(ref results); - //XmlDeserializer deserializer = new XmlDeserializer(); + string resultMessage = ""; + List results; + var input = (DamKernelInput) kernelDataInput; + calculator.PostProcess(input, kernelDataOutput, resultMessage, out results); + //string results = ""; + job.SafetyFactor = results[0].SafetyFactor.Value; + job.CalculationResult = results[0].CalculationResult; + job.RegionalResultType = RegionalResultType.SafetyFactor; +//XmlDeserializer deserializer = new XmlDeserializer(); // RegionalResult result = (RegionalResult)deserializer.XmlDeserializeFromString(results, typeof(RegionalResult)); -// job.SafetyFactor = result.SafetyFactor; -// job.ProbabilityOfFailure = result.ProbabilityOfFailure; -// job.RegionalResultType = result.RegionalResultType; -// job.CalculationResult = result.CalculationResult; + // job.SafetyFactor = result.SafetyFactor; + // job.ProbabilityOfFailure = result.ProbabilityOfFailure; + // job.RegionalResultType = result.RegionalResultType; + // job.CalculationResult = result.CalculationResult; } else { -// job.RegionalResultType = (damCalculation.FailureMechanismParametersMStab.MStabParameters.IsProbabilistic ? RegionalResultType.ProbabilityOfFailure : RegionalResultType.SafetyFactor); + job.RegionalResultType = (currentSpecification.FailureMechanismParametersMStab.MStabParameters.IsProbabilistic ? RegionalResultType.ProbabilityOfFailure : RegionalResultType.SafetyFactor); job.SafetyFactor = double.NaN; job.ProbabilityOfFailure = double.NaN; } lock (runningJobs) { -// runningJobs.Remove(calculator); + runningJobs.Remove(calculator); } } @@ -535,7 +735,7 @@ } // scenariosResult are the results of all scenarios for one location. - this.evaluationJob.Results.Add(scenariosResult); + evaluationJob.Results.Add(scenariosResult); } catch (Exception e) Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/RegionalAssessment/RegionalScenariosCalculationTests.cs =================================================================== diff -u --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/RegionalAssessment/RegionalScenariosCalculationTests.cs (revision 0) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/RegionalAssessment/RegionalScenariosCalculationTests.cs (revision 1119) @@ -0,0 +1,81 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of the Dam Engine. +// +// The Dam Engine is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.IO; +using Deltares.DamEngine.Interface; +using Deltares.DamEngine.Io; +using NUnit.Framework; + +namespace Deltares.DamEngine.Calculators.Tests.RegionalAssessment +{ + [TestFixture] + public class RegionalScenariosCalculationTests + { + private const double tolerance = 0.0005; + + [Test, Category("Work_In_Progress")] + public void Test() + { + const string calcDir = "TestOutStabBishop"; + if (Directory.Exists(calcDir)) + { + Directory.Delete(calcDir, true); // delete previous results + } + + Directory.CreateDirectory(calcDir); + + + const string fileName = @"TestFiles\RegionalAssessment.xml"; + string inputString = File.ReadAllText(fileName); + inputString = ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used + inputString = ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used + inputString = ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\"); + inputString = ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\DAM Tutorial Design0.soilmaterials.mdb"); + var engineInterface = new EngineInterface(inputString); + Assert.IsNotNull(engineInterface.DamProjectData); + + string outputString = engineInterface.Run(); + + Assert.IsNotNull(outputString); + var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); + Assert.AreEqual(1.282, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.SafetyFactor, tolerance); + // Zone1SafetyFactor=1.282 + } + + public string ChangeValueInXml(string input, string key, string value) + { + string result = input; + string searchString = key + "=\""; + var startIndex = input.IndexOf(searchString); + var length = searchString.Length; + if (startIndex != -1) + { + // find next double quote + var endIndex = input.Substring(startIndex + length).IndexOf("\""); + string dirString = input.Substring(startIndex + length, endIndex); + string pattern = searchString + dirString; + string replacement = searchString + value; + result = input.Replace(pattern, replacement); + } + return result; + } + } +} Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs =================================================================== diff -u -r971 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 971) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/EngineInterface.cs (.../EngineInterface.cs) (revision 1119) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using Deltares.DamEngine.Calculators.DikesAssessmentRegional; using Deltares.DamEngine.Calculators.DikesDesign; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Standard; @@ -166,6 +167,9 @@ { case DamProjectType.Assessment: case DamProjectType.AssessmentRegional: + var regionalScenariosCalculator = new RegionalScenariosCalculation(); + calculationMessages = regionalScenariosCalculator.Execute(DamProjectData); + break; case DamProjectType.Operational: throw new NotImplementedException(); case DamProjectType.Design: Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/DamProjectData.cs =================================================================== diff -u -r1113 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Data/General/DamProjectData.cs (.../DamProjectData.cs) (revision 1113) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/DamProjectData.cs (.../DamProjectData.cs) (revision 1119) @@ -345,6 +345,10 @@ } return jobs; } + set + { + jobs = value; + } } public LocationJob GetFirstLocationJobWithDesignResults() @@ -375,7 +379,7 @@ { foreach (LocationJob locationJob in this.LocationJobs) { - if (locationJob.HasLocationResults) + if (locationJob.HasTimeSeriesLocationResults) { return locationJob; } Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs =================================================================== diff -u -r1013 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1013) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlOutput.cs (.../FillDamFromXmlOutput.cs) (revision 1119) @@ -23,8 +23,11 @@ using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; +using Deltares.DamEngine.Data.RegionalAssessmentResults; using Deltares.DamEngine.Data.Standard.Logging; using Deltares.DamEngine.Io.XmlOutput; +using RegionalResult = Deltares.DamEngine.Io.XmlOutput.RegionalResult; +using RegionalScenarioResult = Deltares.DamEngine.Io.XmlOutput.RegionalScenarioResult; namespace Deltares.DamEngine.Interface { @@ -41,9 +44,16 @@ public static DamProjectData CreateDamProjectData(Output output) { var damProjectData = new DamProjectData(); - if (output != null && output.Results != null && output.Results.CalculationResults != null && output.Results.CalculationResults.DesignResults != null) + if (output != null && output.Results != null && output.Results.CalculationResults != null) { - CreateDesignResultsOutput(output, damProjectData); + if (output.Results.CalculationResults.DesignResults != null) + { + CreateDesignResultsOutput(output, damProjectData); + } + if (output.Results.CalculationResults.LocationResults != null) + { + CreateLocationResultsOutput(output, damProjectData); + } } return damProjectData; } @@ -212,5 +222,69 @@ desResult.StabilityDesignResults.UpliftSituation = situation; } } + + private static void CreateLocationResultsOutput(Output output, DamProjectData damProjectData) + { + // Calculation results (per location) + damProjectData.LocationJobs = new List(); + var jobtel = 0; +// foreach (var outputLocationResult in output.Results.CalculationResults.LocationResults) +// { +// var locationJob = new LocationJob("hh"); +// // Stability TimeSerie (later) +// +// // Piping TimeSerie (later) +// +// // RegionalScenarios results +// outputLocationResult.RegionalScenariosResult = new CalculationResultsLocationResultRegionalScenariosResult(); +// outputLocationResult.RegionalScenariosResult.SafetyFactor = locationJob.LocationResult.RegionalScenariosResult.SafetyFactor; +// outputLocationResult.RegionalScenariosResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(locationJob.LocationResult.RegionalScenariosResult.CalculationResult); +// outputLocationResult.RegionalScenariosResult.RegionalScenarioResult = new RegionalScenarioResult[locationJob.LocationResult.RegionalScenariosResult.RegionalScenarioResults.Count]; +// var scentel = 0; +// foreach (var rwScenarioResult in locationJob.LocationResult.RegionalScenariosResult.RegionalScenarioResults) +// { +// var outputRwScenarioResult = new RegionalScenarioResult(); +// outputRwScenarioResult.LoadSituation = ConversionHelper.ConvertToOutputLoadSituation(rwScenarioResult.LoadSituation); +// outputRwScenarioResult.DikeDrySensitivity = ConversionHelper.ConvertToOutputDikeDrySensitivity(rwScenarioResult.DikeDrySensitivity); +// outputRwScenarioResult.HydraulicShortcutType = ConversionHelper.ConvertToOutputHydraulicShortcutType(rwScenarioResult.HydraulicShortcutType); +// outputRwScenarioResult.UpliftType = ConversionHelper.ConvertToOutputUpliftType(rwScenarioResult.UpliftType); +// outputRwScenarioResult.ModelOption = ConversionHelper.ConvertToOutputMStabModelType(rwScenarioResult.ModelOption); +// outputRwScenarioResult.ScenarioType = ConversionHelper.ConvertToOutputScenarioType(rwScenarioResult.ScenarioType); +// outputRwScenarioResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(rwScenarioResult.CalculationResult); +// outputRwScenarioResult.SafetyFactor = rwScenarioResult.SafetyFactor; +// outputRwScenarioResult.RegionalScenarioProfileResults = new RegionalScenarioResultRegionalScenarioProfileResult[rwScenarioResult.RegionalScenarioProfileResults.Count]; +// var proftel = 0; +// foreach (var profileResult in rwScenarioResult.RegionalScenarioProfileResults) +// { +// var outputProfileResult = new RegionalScenarioResultRegionalScenarioProfileResult(); +// outputProfileResult.LocationName = profileResult.LocationName; +// outputProfileResult.LoadSituation = ConversionHelper.ConvertToOutputLoadSituation(profileResult.LoadSituation); +// outputProfileResult.DikeDrySensitivity = ConversionHelper.ConvertToOutputDikeDrySensitivity(profileResult.DikeDrySensitivity); +// outputProfileResult.HydraulicShortcutType = ConversionHelper.ConvertToOutputHydraulicShortcutType(profileResult.HydraulicShortcutType); +// outputProfileResult.UpliftType = ConversionHelper.ConvertToOutputUpliftType(profileResult.UpliftType); +// outputProfileResult.MStabModelOption = ConversionHelper.ConvertToOutputMStabModelType(profileResult.MstabModelOption); +// outputProfileResult.PipingModelOption = ConversionHelper.ConvertToOutputPipingModelType(profileResult.PipingModelOption); +// outputProfileResult.ScenarioType = ConversionHelper.ConvertToOutputScenarioType(profileResult.ScenarioType); +// outputProfileResult.SoilProfileName = profileResult.SoilProfileName; +// outputProfileResult.SoilProfileProbability = profileResult.SoilProfileProbability; +// outputProfileResult.FailureMechanismType = ConversionHelper.ConvertToInputFailureMechanismSystemType(profileResult.FailureMechanismType); +// outputProfileResult.BaseFileName = profileResult.BaseFileName; +// outputProfileResult.RegionalResult = new RegionalResult(); +// outputProfileResult.RegionalResult.RegionalResultType = ConversionHelper.ConvertToOutputRegionalResultType(profileResult.RegionalResultType); +// outputProfileResult.RegionalResult.SafetyFactor = profileResult.SafetyFactor; +// outputProfileResult.RegionalResult.ProbabilityOfFailure = profileResult.ProbabilityOfFailure; +// outputProfileResult.RegionalResult.CalculationResult = ConversionHelper.ConvertToOutputCalculationResult(profileResult.CalculationResult); +// outputLocationResult.RegionalScenariosResult.RegionalScenarioResult[scentel].RegionalScenarioProfileResults[proftel] = outputProfileResult; +// proftel++; +// } +// outputLocationResult.RegionalScenariosResult.RegionalScenarioResult[scentel] = outputRwScenarioResult; +// scentel++; +// +// // RWSchematizationFactors Result later +// } +// output.Results.CalculationResults.LocationResults[jobtel] = outputLocationResult; +// jobtel++; +// } + } } } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Interfaces/IKernelWrapper.cs =================================================================== diff -u -r1040 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Interfaces/IKernelWrapper.cs (.../IKernelWrapper.cs) (revision 1040) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Interfaces/IKernelWrapper.cs (.../IKernelWrapper.cs) (revision 1119) @@ -25,6 +25,7 @@ using Deltares.DamEngine.Data.General.Results; using Deltares.DamEngine.Data.Geometry; using Deltares.DamEngine.Data.Geotechnics; +using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.DamEngine.Data.Standard.Logging; namespace Deltares.DamEngine.Calculators.KernelWrappers.Interfaces @@ -44,7 +45,7 @@ /// /// Interface to implement external failure mechanisms /// - public interface IKernelWrapper + public interface IKernelWrapper : ICalculation { /// /// Prepares the failure mechanism input based on general dam kernel input. Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Deltares.DamEngine.Calculators.Tests.csproj =================================================================== diff -u -r1115 -r1119 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Deltares.DamEngine.Calculators.Tests.csproj (.../Deltares.DamEngine.Calculators.Tests.csproj) (revision 1115) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Deltares.DamEngine.Calculators.Tests.csproj (.../Deltares.DamEngine.Calculators.Tests.csproj) (revision 1119) @@ -68,6 +68,7 @@ + @@ -80,6 +81,14 @@ {B7A49C1A-1C91-4D72-ABA9-9FBAC2509D8E} Deltares.DamEngine.Data + + {750464A3-CBFA-429F-920E-B430867F1120} + Deltares.DamEngine.Interface + + + {1560A423-F338-4DEC-8583-1DFF7077F104} + Deltares.DamEngine.Io + {A41683F4-C3E0-4386-AEE7-FAACD535CF93} Deltares.DamEngine.TestHelpers @@ -127,7 +136,11 @@ PreserveNewest + + PreserveNewest + +