Index: Ringtoets.sln =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets.sln (.../Ringtoets.sln) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets.sln (.../Ringtoets.sln) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -454,7 +454,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{435F0AB1-1180-47D3-9BCB-3B5FF365236C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.HydraRing.Calculation", "Ringtoets\HydraRing\src\Ringtoets.HydraRing.Calculation\Riskeer.HydraRing.Calculation.csproj", "{888D4097-8BC2-4703-9FB1-8744C94D525E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.HydraRing.Calculation", "Ringtoets\HydraRing\src\Riskeer.HydraRing.Calculation\Riskeer.HydraRing.Calculation.csproj", "{888D4097-8BC2-4703-9FB1-8744C94D525E}" ProjectSection(ProjectDependencies) = postProject {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/Ringtoets.ClosingStructures.Plugin.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/Ringtoets.ClosingStructures.Plugin.csproj (.../Ringtoets.ClosingStructures.Plugin.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/Ringtoets.ClosingStructures.Plugin.csproj (.../Ringtoets.ClosingStructures.Plugin.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -80,7 +80,7 @@ Ringtoets.Common.Service False - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation False Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/Ringtoets.ClosingStructures.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/Ringtoets.ClosingStructures.Service.csproj (.../Ringtoets.ClosingStructures.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/Ringtoets.ClosingStructures.Service.csproj (.../Ringtoets.ClosingStructures.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -50,7 +50,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Integration.Test/Ringtoets.ClosingStructures.Integration.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Integration.Test/Ringtoets.ClosingStructures.Integration.Test.csproj (.../Ringtoets.ClosingStructures.Integration.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Integration.Test/Ringtoets.ClosingStructures.Integration.Test.csproj (.../Ringtoets.ClosingStructures.Integration.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -57,7 +57,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj (.../Ringtoets.ClosingStructures.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Plugin.Test/Ringtoets.ClosingStructures.Plugin.Test.csproj (.../Ringtoets.ClosingStructures.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -132,7 +132,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/Ringtoets.ClosingStructures.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/Ringtoets.ClosingStructures.Service.Test.csproj (.../Ringtoets.ClosingStructures.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/Ringtoets.ClosingStructures.Service.Test.csproj (.../Ringtoets.ClosingStructures.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -58,7 +58,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -426,7 +426,7 @@ Riskeer.AssemblyTool.Forms False - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation False Index: Ringtoets/Common/src/Ringtoets.Common.IO/Ringtoets.Common.IO.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Common/src/Ringtoets.Common.IO/Ringtoets.Common.IO.csproj (.../Ringtoets.Common.IO.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Ringtoets.Common.IO.csproj (.../Ringtoets.Common.IO.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -226,7 +226,7 @@ Core.Components.Gis False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/Common/src/Ringtoets.Common.Service/Ringtoets.Common.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Common/src/Ringtoets.Common.Service/Ringtoets.Common.Service.csproj (.../Ringtoets.Common.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Common/src/Ringtoets.Common.Service/Ringtoets.Common.Service.csproj (.../Ringtoets.Common.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -74,7 +74,7 @@ Core.Common.Util False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Ringtoets.Common.Forms.Test.csproj (.../Ringtoets.Common.Forms.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -284,7 +284,7 @@ {0AB432BB-E2CC-42EA-A72C-7AFEF7536B38} Riskeer.AssemblyTool.KernelWrapper.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Ringtoets.Common.IO.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Ringtoets.Common.IO.Test.csproj (.../Ringtoets.Common.IO.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Ringtoets.Common.IO.Test.csproj (.../Ringtoets.Common.IO.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -159,7 +159,7 @@ {d749ee4c-ce50-4c17-bf01-9a953028c126} Core.Common.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/Ringtoets.Common.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/Ringtoets.Common.Service.Test.csproj (.../Ringtoets.Common.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/Ringtoets.Common.Service.Test.csproj (.../Ringtoets.Common.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -86,7 +86,7 @@ {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/Common/test/Ringtoets.Common.Service.TestUtil/Ringtoets.Common.Service.TestUtil.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Common/test/Ringtoets.Common.Service.TestUtil/Ringtoets.Common.Service.TestUtil.csproj (.../Ringtoets.Common.Service.TestUtil.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Common/test/Ringtoets.Common.Service.TestUtil/Ringtoets.Common.Service.TestUtil.csproj (.../Ringtoets.Common.Service.TestUtil.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -32,7 +32,7 @@ {3bbfd65b-b277-4e50-ae6d-bd24c3434609} Core.Common.Base - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/Ringtoets.DuneErosion.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/Ringtoets.DuneErosion.Service.csproj (.../Ringtoets.DuneErosion.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/Ringtoets.DuneErosion.Service.csproj (.../Ringtoets.DuneErosion.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -54,7 +54,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Ringtoets.DuneErosion.Forms.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Ringtoets.DuneErosion.Forms.Test.csproj (.../Ringtoets.DuneErosion.Forms.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Forms.Test/Ringtoets.DuneErosion.Forms.Test.csproj (.../Ringtoets.DuneErosion.Forms.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -120,7 +120,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/Ringtoets.DuneErosion.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/Ringtoets.DuneErosion.Plugin.Test.csproj (.../Ringtoets.DuneErosion.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Plugin.Test/Ringtoets.DuneErosion.Plugin.Test.csproj (.../Ringtoets.DuneErosion.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -118,7 +118,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/Ringtoets.DuneErosion.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/Ringtoets.DuneErosion.Service.Test.csproj (.../Ringtoets.DuneErosion.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/Ringtoets.DuneErosion.Service.Test.csproj (.../Ringtoets.DuneErosion.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -61,7 +61,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/Ringtoets.GrassCoverErosionInwards.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/Ringtoets.GrassCoverErosionInwards.Service.csproj (.../Ringtoets.GrassCoverErosionInwards.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/Ringtoets.GrassCoverErosionInwards.Service.csproj (.../Ringtoets.GrassCoverErosionInwards.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -57,7 +57,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/Ringtoets.GrassCoverErosionInwards.Integration.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/Ringtoets.GrassCoverErosionInwards.Integration.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Integration.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Integration.Test/Ringtoets.GrassCoverErosionInwards.Integration.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Integration.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -79,7 +79,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -147,7 +147,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Service.Test/Ringtoets.GrassCoverErosionInwards.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Service.Test/Ringtoets.GrassCoverErosionInwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Service.Test/Ringtoets.GrassCoverErosionInwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionInwards.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -59,7 +59,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/Ringtoets.GrassCoverErosionOutwards.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/Ringtoets.GrassCoverErosionOutwards.Service.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/Ringtoets.GrassCoverErosionOutwards.Service.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -38,7 +38,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/Ringtoets.GrassCoverErosionOutwards.Integration.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/Ringtoets.GrassCoverErosionOutwards.Integration.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Integration.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Integration.Test/Ringtoets.GrassCoverErosionOutwards.Integration.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Integration.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -53,7 +53,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -151,7 +151,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj (.../Ringtoets.GrassCoverErosionOutwards.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -60,7 +60,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/Ringtoets.HeightStructures.Plugin.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/Ringtoets.HeightStructures.Plugin.csproj (.../Ringtoets.HeightStructures.Plugin.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/Ringtoets.HeightStructures.Plugin.csproj (.../Ringtoets.HeightStructures.Plugin.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -75,7 +75,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/Ringtoets.HeightStructures.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/Ringtoets.HeightStructures.Service.csproj (.../Ringtoets.HeightStructures.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/Ringtoets.HeightStructures.Service.csproj (.../Ringtoets.HeightStructures.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -45,7 +45,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Integration.Test/Ringtoets.HeightStructures.Integration.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Integration.Test/Ringtoets.HeightStructures.Integration.Test.csproj (.../Ringtoets.HeightStructures.Integration.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Integration.Test/Ringtoets.HeightStructures.Integration.Test.csproj (.../Ringtoets.HeightStructures.Integration.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -69,7 +69,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/Ringtoets.HeightStructures.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/Ringtoets.HeightStructures.Plugin.Test.csproj (.../Ringtoets.HeightStructures.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Plugin.Test/Ringtoets.HeightStructures.Plugin.Test.csproj (.../Ringtoets.HeightStructures.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -131,7 +131,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/Ringtoets.HeightStructures.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/Ringtoets.HeightStructures.Service.Test.csproj (.../Ringtoets.HeightStructures.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Service.Test/Ringtoets.HeightStructures.Service.Test.csproj (.../Ringtoets.HeightStructures.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -57,7 +57,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/DesignWaterLevelCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/DunesBoundaryConditionsCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/HydraRingCalculatorFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/IHydraRingCalculatorFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/HydraulicLoadsCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IDesignWaterLevelCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IDunesBoundaryConditionsCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IHydraulicLoadsCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IOvertoppingCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IStructuresCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IWaveConditionsCosineCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/IWaveHeightCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/OvertoppingCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/StructuresCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/WaveConditionsCosineCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/WaveHeightCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Defaults/FailureMechanismDefaults.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Defaults/VariableDefaults.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingBreakWater.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingDeviationType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingDistributionType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingFailureMechanismType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingForelandPoint.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingProfilePoint.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingSection.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/HydraRingUncertaintiesType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/ExceedanceProbabilityCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/HydraRingCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/HydraRingCalculationSettings.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Hydraulics/AssessmentLevelCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Hydraulics/DikeHeightCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Hydraulics/DunesBoundaryConditionsCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Hydraulics/HydraulicLoadsCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Hydraulics/OvertoppingRateCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Hydraulics/WaveHeightCalculationInput .cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Overtopping/HydraRingRoughnessProfilePoint.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Overtopping/OvertoppingCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/ReliabilityIndexCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresClosureCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresClosureFloodedCulvertCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresClosureLowSillCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresClosureVerticalWallCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresOvertoppingCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertLinearCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertQuadraticCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillLinearCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillQuadraticCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCosineCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsTrapezoidCalculationInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/DunesBoundaryConditionsCalculationOutput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/CombinationType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/FaultTreeIllustrationPoint.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/GeneralResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/IIllustrationPoint.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointTreeNode.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/Stochast.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPoint.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPointStochast.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirection.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirectionClosingSituation.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/OvertoppingCalculationWaveHeightOutput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/ReliabilityIndexCalculationOutput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Output/WaveConditionsCalculationOutput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Settings/DesignTablesSetting.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Settings/NumericsSetting.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Settings/PreprocessorSetting.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Settings/TimeIntegrationSetting.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Variables/DeterministicHydraRingVariable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Variables/HydraRingVariable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Variables/LogNormalHydraRingVariable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Variables/NormalHydraRingVariable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Variables/RandomHydraRingVariable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Variables/RayleighNHydraRingVariable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Data/Variables/TruncatedNormalHydraRingVariable.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Exceptions/HydraRingCalculationException.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Exceptions/HydraRingFileParserException.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/DelftTools.Utils.dll =================================================================== diff -u -rfef3460a27a37aaa34948649aae3dd9ae143041c -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/DeltaShell.Plugins.MorphAn.Domain.dll =================================================================== diff -u -rfef3460a27a37aaa34948649aae3dd9ae143041c -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/DeltaShell.Plugins.MorphAn.TRDA.dll =================================================================== diff -u -rfef3460a27a37aaa34948649aae3dd9ae143041c -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.Geographic.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.Geometry.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.Geotechnics.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.Mathematics.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.Probabilistic.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.Standard.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WTIPiping.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WTIStability.Calculation.Wrapper.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WTIStability.Calculation.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WTIStability.IO.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WTIStability.Levenberg.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WTIStability.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WTIStructuralFailure.dll =================================================================== diff -u -r2d9c36bb6eee0366b12e1eae53acd69f2867ca84 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/Deltares.WaternetCreator.dll =================================================================== diff -u -rbafcd3618c36c38f37d56f8da48056313185ef3f -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/DikesOvertopping.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/DllLinearizedBetaAlpha.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/DynamicLib-DaF.dll =================================================================== diff -u -r32e9b5ed73b6c798055ab4c87c4db703fb3d866e -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HRutilitiesDll.dll =================================================================== diff -u -r2d9c36bb6eee0366b12e1eae53acd69f2867ca84 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.Database.Test.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.Database.TestUtils.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.Database.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.DuneErosionWrapper.Tests.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.DuneErosionWrapper.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.IO.Native.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.IO.TestUtils.Native.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.MacroStability.Wrapper.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.Piping2017Wrapper.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/HydraRing.PluginShared.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/ICSharpCode.SharpZipLib.dll =================================================================== diff -u -r5d2266c055328eb7f13376df384683af71e3fee3 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/LicenseAGPL.txt'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/LumenWorks.Framework.IO.dll =================================================================== diff -u -rfef3460a27a37aaa34948649aae3dd9ae143041c -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/MathNet.Numerics.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/MechanismComputation.exe =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/NDepend.Helpers.FileDirectoryPath.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/PostSharp.dll =================================================================== diff -u -r5d2266c055328eb7f13376df384683af71e3fee3 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/ProtoBufRemote.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/StructuresStructuralFailure2017wrapper.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/System.Data.SQLite.Linq.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/System.Data.SQLite.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/config.sqlite =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/dikesOverflow.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/dllDikesOvertopping.dll =================================================================== diff -u -re6400edf793dd7c72f88ee67a2647ee8375471e8 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/dllHydraulicDunes.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/dllStructuresClosure2017.dll =================================================================== diff -u -rfef3460a27a37aaa34948649aae3dd9ae143041c -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/dllStructuresClosure2018.dll =================================================================== diff -u -r2d9c36bb6eee0366b12e1eae53acd69f2867ca84 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/dllStructuresConstFailure2017.dll =================================================================== diff -u -r2d9c36bb6eee0366b12e1eae53acd69f2867ca84 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/dllStructuresOvertopping2017.dll =================================================================== diff -u -r2d9c36bb6eee0366b12e1eae53acd69f2867ca84 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/duneErosion.Native.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/exeRingComputation.exe =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/feedbackDLL.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/hydraring_computation.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/libifcoremd.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/libifcorert.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/libifportmd.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/libiomp5md.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/libiompstubs5md.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/libmmd.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/linearizedBetaAlpha.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/log4net.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/macroStability.Native.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/mfc110.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/mfc110u.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/mfcm110.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/mfcm110u.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/msvcp110.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/msvcr110.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/msvcrt.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/nunit.framework.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/piping2017.Native.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/protobuf-net.dll =================================================================== diff -u -rfef3460a27a37aaa34948649aae3dd9ae143041c -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/structuresClosure2017.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/structuresClosure2018.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/structuresOvertopping2017.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/structuresStructuralFailure2017.Native.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/svml_dispmd.dll =================================================================== diff -u -rc2a3a81f0c071f5f68aaa4a2cdc42831c94f5b82 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/winapi.dll =================================================================== diff -u -r820e32dad4adde6685f77fa26cc28e5be343906d -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/x64/SQLite.Interop.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRing/x86/SQLite.Interop.dll =================================================================== diff -u -r13e66707fe793525ad730bcb6967863994cd3a69 -r0bf87533c711b9fecb268139636ad9a19e36ebdd Binary files differ Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingDatabaseConstants.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingFileConstants.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ConvergenceParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/DunesBoundaryConditionsCalculationParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ExceedanceProbabilityCalculationParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/HydraRingDatabaseParseHelper.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IHydraRingFileParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointQueries.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsDatabaseConstants.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/LastErrorFileParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/OvertoppingCalculationWaveHeightParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/ReliabilityIndexCalculationParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Parsers/WaveConditionsCalculationParser.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Providers/FailureMechanismDefaultsProvider.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Providers/VariableDefaultsProvider.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Readers/HydraRingDatabaseReader.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Riskeer.HydraRing.Calculation.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Services/HydraRingConfigurationService.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Services/HydraRingInitializationService.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Services/HydraRingProcessFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 0bf87533c711b9fecb268139636ad9a19e36ebdd refers to a dead (removed) revision in file `Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/packages.config'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/DesignWaterLevelCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/DesignWaterLevelCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/DesignWaterLevelCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,86 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Parsers; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Calculator which calculates the water level associated to the result of iterating towards a + /// probability of failure given a norm. + /// + internal class DesignWaterLevelCalculator : HydraRingCalculatorBase, IDesignWaterLevelCalculator + { + private readonly ReliabilityIndexCalculationParser targetProbabilityParser; + private readonly ConvergenceParser convergenceParser; + + /// + /// Create a new instance of . + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + internal DesignWaterLevelCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) + { + targetProbabilityParser = new ReliabilityIndexCalculationParser(); + convergenceParser = new ConvergenceParser(); + + DesignWaterLevel = double.NaN; + ReliabilityIndex = double.NaN; + } + + public double DesignWaterLevel { get; private set; } + + public double ReliabilityIndex { get; private set; } + + public bool? Converged { get; private set; } + + public void Calculate(AssessmentLevelCalculationInput input) + { + Calculate(HydraRingUncertaintiesType.All, input); + } + + protected override IEnumerable GetParsers() + { + yield return targetProbabilityParser; + yield return convergenceParser; + } + + protected override void SetOutputs() + { + if (targetProbabilityParser.Output != null) + { + DesignWaterLevel = targetProbabilityParser.Output.Result; + ReliabilityIndex = targetProbabilityParser.Output.CalculatedReliabilityIndex; + } + + Converged = convergenceParser.Output; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/DunesBoundaryConditionsCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/DunesBoundaryConditionsCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/DunesBoundaryConditionsCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,101 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Parsers; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Calculator which calculates the dunes boundary conditions associated to the result of iterating towards a + /// probability of failure given a norm. + /// + internal class DunesBoundaryConditionsCalculator : HydraRingCalculatorBase, IDunesBoundaryConditionsCalculator + { + private readonly DunesBoundaryConditionsCalculationParser dunesBoundaryParser; + private readonly ReliabilityIndexCalculationParser targetProbabilityParser; + private readonly ConvergenceParser convergenceParser; + + /// + /// Create a new instance of . + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + internal DunesBoundaryConditionsCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) + { + dunesBoundaryParser = new DunesBoundaryConditionsCalculationParser(); + targetProbabilityParser = new ReliabilityIndexCalculationParser(); + convergenceParser = new ConvergenceParser(); + + WaterLevel = double.NaN; + WaveHeight = double.NaN; + WavePeriod = double.NaN; + ReliabilityIndex = double.NaN; + } + + public double WaterLevel { get; private set; } + + public double WaveHeight { get; private set; } + + public double WavePeriod { get; private set; } + + public double ReliabilityIndex { get; private set; } + + public bool? Converged { get; private set; } + + public void Calculate(DunesBoundaryConditionsCalculationInput input) + { + Calculate(HydraRingUncertaintiesType.All, input); + } + + protected override IEnumerable GetParsers() + { + yield return dunesBoundaryParser; + yield return targetProbabilityParser; + yield return convergenceParser; + } + + protected override void SetOutputs() + { + if (dunesBoundaryParser.Output != null) + { + WaterLevel = dunesBoundaryParser.Output.WaterLevel; + WaveHeight = dunesBoundaryParser.Output.WaveHeight; + WavePeriod = dunesBoundaryParser.Output.WavePeriod; + } + + if (targetProbabilityParser.Output != null) + { + ReliabilityIndex = targetProbabilityParser.Output.CalculatedReliabilityIndex; + } + + Converged = convergenceParser.Output; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/Factory/HydraRingCalculatorFactory.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/Factory/HydraRingCalculatorFactory.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/Factory/HydraRingCalculatorFactory.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,90 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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 Riskeer.HydraRing.Calculation.Data.Input; + +namespace Riskeer.HydraRing.Calculation.Calculator.Factory +{ + /// + /// The factory for creating instances. + /// + public class HydraRingCalculatorFactory : IHydraRingCalculatorFactory + { + private static IHydraRingCalculatorFactory instance; + + /// + /// Sets the current , which is used to create + /// instances. + /// + public static IHydraRingCalculatorFactory Instance + { + get + { + return instance ?? (instance = new HydraRingCalculatorFactory()); + } + internal set + { + instance = value; + } + } + + public IDesignWaterLevelCalculator CreateDesignWaterLevelCalculator(HydraRingCalculationSettings calculationSettings) + { + return new DesignWaterLevelCalculator(calculationSettings); + } + + public IOvertoppingCalculator CreateOvertoppingCalculator(HydraRingCalculationSettings calculationSettings) + { + return new OvertoppingCalculator(calculationSettings); + } + + public IHydraulicLoadsCalculator CreateDikeHeightCalculator(HydraRingCalculationSettings calculationSettings) + { + return new HydraulicLoadsCalculator(calculationSettings); + } + + public IHydraulicLoadsCalculator CreateOvertoppingRateCalculator(HydraRingCalculationSettings calculationSettings) + { + return new HydraulicLoadsCalculator(calculationSettings); + } + + public IWaveConditionsCosineCalculator CreateWaveConditionsCosineCalculator(HydraRingCalculationSettings calculationSettings) + { + return new WaveConditionsCosineCalculator(calculationSettings); + } + + public IWaveHeightCalculator CreateWaveHeightCalculator(HydraRingCalculationSettings calculationSettings) + { + return new WaveHeightCalculator(calculationSettings); + } + + public IDunesBoundaryConditionsCalculator CreateDunesBoundaryConditionsCalculator(HydraRingCalculationSettings calculationSettings) + { + return new DunesBoundaryConditionsCalculator(calculationSettings); + } + + public IStructuresCalculator CreateStructuresCalculator(HydraRingCalculationSettings calculationSettings) + where TCalculationInput : ExceedanceProbabilityCalculationInput + { + return new StructuresCalculator(calculationSettings); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/Factory/IHydraRingCalculatorFactory.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/Factory/IHydraRingCalculatorFactory.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/Factory/IHydraRingCalculatorFactory.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,131 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input; + +namespace Riskeer.HydraRing.Calculation.Calculator.Factory +{ + /// + /// Interface for a factory which creates calculators that are used to perform a calculation using + /// Hydra-Ring. + /// + public interface IHydraRingCalculatorFactory + { + /// + /// Creates a calculator for calculating a design water level. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IDesignWaterLevelCalculator CreateDesignWaterLevelCalculator(HydraRingCalculationSettings calculationSettings); + + /// + /// Creates a calculator for performing an overtopping calculation. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IOvertoppingCalculator CreateOvertoppingCalculator(HydraRingCalculationSettings calculationSettings); + + /// + /// Creates a calculator for calculating a dike height. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IHydraulicLoadsCalculator CreateDikeHeightCalculator(HydraRingCalculationSettings calculationSettings); + + /// + /// Creates a calculator for calculating an overtopping rate. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IHydraulicLoadsCalculator CreateOvertoppingRateCalculator(HydraRingCalculationSettings calculationSettings); + + /// + /// Creates a calculator for calculating wave conditions. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IWaveConditionsCosineCalculator CreateWaveConditionsCosineCalculator(HydraRingCalculationSettings calculationSettings); + + /// + /// Creates a calculator for calculating a wave height. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IWaveHeightCalculator CreateWaveHeightCalculator(HydraRingCalculationSettings calculationSettings); + + /// + /// Creates a calculator for performing a calculation for dunes boundary conditions. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IDunesBoundaryConditionsCalculator CreateDunesBoundaryConditionsCalculator(HydraRingCalculationSettings calculationSettings); + + /// + /// Creates a calculator for performing a calculation for structures. + /// + /// The type of the input. + /// The with the + /// Hydra-Ring calculation settings. + /// A new .> + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + IStructuresCalculator CreateStructuresCalculator(HydraRingCalculationSettings calculationSettings) + where TCalculationInput : ExceedanceProbabilityCalculationInput; + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/HydraRingCalculatorBase.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,257 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Security; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Parsers; +using Riskeer.HydraRing.Calculation.Parsers.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Properties; +using Riskeer.HydraRing.Calculation.Services; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Base implementation for a calculator which uses Hydra-Ring to perform different calculations. + /// + internal abstract class HydraRingCalculatorBase + { + private readonly HydraRingCalculationSettings calculationSettings; + private readonly LastErrorFileParser lastErrorFileParser; + private readonly IllustrationPointsParser illustrationPointsParser; + + private Process hydraRingProcess; + + /// + /// Creates a new instance of with a default Hydra-Ring file parser + /// initialized. + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when is null. + /// Preprocessing is disabled when + /// equals . + protected HydraRingCalculatorBase(HydraRingCalculationSettings calculationSettings) + { + if (calculationSettings == null) + { + throw new ArgumentNullException(nameof(calculationSettings)); + } + + this.calculationSettings = calculationSettings; + + lastErrorFileParser = new LastErrorFileParser(); + illustrationPointsParser = new IllustrationPointsParser(); + } + + /// + /// Gets the temporary output directory that is generated during the calculation. + /// + public string OutputDirectory { get; private set; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + public string LastErrorFileContent { get; private set; } + + /// + /// Gets the result of the illustration points. + /// + public GeneralResult IllustrationPointsResult { get; private set; } + + /// + /// Gets the error message of the illustration points parser. + /// + public string IllustrationPointsParserErrorMessage { get; private set; } + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + public void Cancel() + { + if (hydraRingProcess != null && !hydraRingProcess.HasExited) + { + hydraRingProcess.StandardInput.WriteLine("b"); + } + } + + /// + /// Gets the parsers that are executed on the output file(s) of Hydra-Ring. + /// + /// The parsers to execute. + protected virtual IEnumerable GetParsers() + { + yield break; + } + + /// + /// Sets the values on the output parameters of the calculation. + /// + protected abstract void SetOutputs(); + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The uncertainty type used in the calculation. + /// The object containing input data. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + protected void Calculate(HydraRingUncertaintiesType uncertaintiesType, + HydraRingCalculationInput hydraRingCalculationInput) + { + try + { + if (string.IsNullOrEmpty(calculationSettings.PreprocessorDirectory) && hydraRingCalculationInput.PreprocessorSetting.RunPreprocessor) + { + throw new InvalidOperationException("Preprocessor directory required but not specified."); + } + + int sectionId = hydraRingCalculationInput.Section.SectionId; + OutputDirectory = CreateWorkingDirectory(); + + var hydraRingConfigurationService = new HydraRingConfigurationService(uncertaintiesType); + hydraRingConfigurationService.AddHydraRingCalculationInput(hydraRingCalculationInput); + + var hydraRingInitializationService = new HydraRingInitializationService( + hydraRingCalculationInput.FailureMechanismType, + sectionId, + OutputDirectory, + calculationSettings); + hydraRingInitializationService.WriteInitializationScript(); + hydraRingConfigurationService.WriteDatabaseCreationScript(hydraRingInitializationService.DatabaseCreationScriptFilePath); + + PerformCalculation(OutputDirectory, hydraRingInitializationService); + ExecuteGenericParsers(hydraRingInitializationService, sectionId); + ExecuteCustomParsers(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId); + } + catch (HydraRingFileParserException e) + { + throw new HydraRingCalculationException(e.Message, e.InnerException); + } + catch (Exception e) when (IsSupportedCalculatedException(e)) + { + throw new HydraRingCalculationException(string.Format(Resources.HydraRingCalculatorBase_Calculate_Critical_error_during_calculation_Exception_0, + e.Message), + e.InnerException); + } + } + + private static bool IsSupportedCalculatedException(Exception e) + { + return e is SecurityException + || e is IOException + || e is UnauthorizedAccessException + || e is ArgumentException + || e is NotSupportedException + || e is Win32Exception; + } + + /// + /// Executes the generic parsers of the calculation. + /// + /// The to get the directory from. + /// The id of the section of the calculation. + /// Thrown when the HydraRing file parser + /// encounters an error while parsing HydraRing output. + /// The is set to null when the + /// encounters an error. + private void ExecuteGenericParsers(HydraRingInitializationService hydraRingInitializationService, int sectionId) + { + lastErrorFileParser.Parse(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId); + LastErrorFileContent = lastErrorFileParser.ErrorFileContent; + + try + { + illustrationPointsParser.Parse(hydraRingInitializationService.TemporaryWorkingDirectory, sectionId); + IllustrationPointsResult = illustrationPointsParser.Output; + } + catch (HydraRingFileParserException e) + { + IllustrationPointsParserErrorMessage = e.Message; + IllustrationPointsResult = null; + } + } + + /// + /// Executes the custom parsers of the calculation. + /// + /// The temporary directory of the calculation output files. + /// The id of the section of the calculation. + /// Thrown when the HydraRing file parser + /// encounters an error while parsing HydraRing output. + private void ExecuteCustomParsers(string temporaryWorkingDirectory, int sectionId) + { + foreach (IHydraRingFileParser parser in GetParsers()) + { + parser.Parse(temporaryWorkingDirectory, sectionId); + } + + SetOutputs(); + } + + /// + /// Performs the calculation by starting a Hydra-Ring process. + /// + /// The directory of the process. + /// The . + /// Thrown when there was an error in opening the associated file + /// or the wait setting could not be accessed. + private void PerformCalculation(string workingDirectory, HydraRingInitializationService hydraRingInitializationService) + { + hydraRingProcess = HydraRingProcessFactory.Create( + hydraRingInitializationService.MechanismComputationExeFilePath, + hydraRingInitializationService.IniFilePath, + workingDirectory); + hydraRingProcess.Start(); + hydraRingProcess.WaitForExit(); + hydraRingProcess.Close(); + hydraRingProcess = null; + } + + /// + /// Creates the working directory of the calculation. + /// + /// The created working directory. + /// Thrown when the temporary path can't be accessed due to missing permissions. + /// Thrown when the directory can't be created due to missing + /// the required permissions. + private static string CreateWorkingDirectory() + { + string workingDirectory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + + if (Directory.Exists(workingDirectory)) + { + Directory.Delete(workingDirectory, true); + } + + Directory.CreateDirectory(workingDirectory); + + return workingDirectory; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/HydraulicLoadsCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/HydraulicLoadsCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/HydraulicLoadsCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,86 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Parsers; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Calculator which calculates a hydraulic loads value associated to the result of iterating towards a + /// probability of failure given a norm. + /// + internal class HydraulicLoadsCalculator : HydraRingCalculatorBase, IHydraulicLoadsCalculator + { + private readonly ReliabilityIndexCalculationParser targetProbabilityParser; + private readonly ConvergenceParser convergenceParser; + + /// + /// Create a new instance of . + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + internal HydraulicLoadsCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) + { + targetProbabilityParser = new ReliabilityIndexCalculationParser(); + convergenceParser = new ConvergenceParser(); + + Value = double.NaN; + ReliabilityIndex = double.NaN; + } + + public double Value { get; private set; } + + public double ReliabilityIndex { get; private set; } + + public bool? Converged { get; private set; } + + public void Calculate(HydraulicLoadsCalculationInput input) + { + Calculate(HydraRingUncertaintiesType.All, input); + } + + protected override IEnumerable GetParsers() + { + yield return targetProbabilityParser; + yield return convergenceParser; + } + + protected override void SetOutputs() + { + if (targetProbabilityParser.Output != null) + { + Value = targetProbabilityParser.Output.Result; + ReliabilityIndex = targetProbabilityParser.Output.CalculatedReliabilityIndex; + } + + Converged = convergenceParser.Output; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IDesignWaterLevelCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IDesignWaterLevelCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IDesignWaterLevelCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,84 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator which calculates the water level associated to the result of + /// iterating towards a probability of failure given a norm. + /// + public interface IDesignWaterLevelCalculator + { + /// + /// Gets the water level at a location. + /// + double DesignWaterLevel { get; } + + /// + /// Gets the reliability index + /// + double ReliabilityIndex { get; } + + /// + /// Gets the result of parsing the illustration points in the Hydra-Ring database. + /// + GeneralResult IllustrationPointsResult { get; } + + /// + /// Gets the value indicating whether the calculation converged. + /// + bool? Converged { get; } + + /// + /// Gets the temporary output directory that is generated during the Hydra-Ring calculation. + /// + string OutputDirectory { get; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + string LastErrorFileContent { get; } + + /// + /// Gets the error message when parsing the illustration points. + /// + string IllustrationPointsParserErrorMessage { get; } + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The which contains all the necessary input + /// for the calculation. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + void Calculate(AssessmentLevelCalculationInput input); + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + void Cancel(); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IDunesBoundaryConditionsCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IDunesBoundaryConditionsCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IDunesBoundaryConditionsCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,83 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator which calculates the dunes boundary conditions associated to the result of iterating towards a + /// probability of failure given a norm. + /// + public interface IDunesBoundaryConditionsCalculator + { + /// + /// Gets the water level at a location. + /// + double WaterLevel { get; } + + /// + /// Gets the wave height at a location. + /// + double WaveHeight { get; } + + /// + /// Gets the wave period at a location. + /// + double WavePeriod { get; } + + /// + /// Gets the reliability index + /// + double ReliabilityIndex { get; } + + /// + /// Gets the value indicating whether the calculation converged. + /// + bool? Converged { get; } + + /// + /// Gets the temporary output directory that is generated during the Hydra-Ring calculation. + /// + string OutputDirectory { get; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + string LastErrorFileContent { get; } + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The which contains all the necessary input + /// for the calculation. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + void Calculate(DunesBoundaryConditionsCalculationInput input); + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + void Cancel(); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IHydraulicLoadsCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IHydraulicLoadsCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IHydraulicLoadsCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,84 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator which calculates a hydraulic loads value associated to the result of iterating towards a + /// probability of failure given a norm. + /// + public interface IHydraulicLoadsCalculator + { + /// + /// Gets the calculated hydraulic loads value. + /// + double Value { get; } + + /// + /// Gets the reliability index. + /// + double ReliabilityIndex { get; } + + /// + /// Gets the value indicating whether the calculation converged. + /// + bool? Converged { get; } + + /// + /// Gets the temporary output directory that is generated during the Hydra-Ring calculation. + /// + string OutputDirectory { get; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + string LastErrorFileContent { get; } + + /// + /// Gets the result of parsing the illustration points in the Hydra-Ring database. + /// + GeneralResult IllustrationPointsResult { get; } + + /// + /// Gets the error message when parsing the illustration points. + /// + string IllustrationPointsParserErrorMessage { get; } + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The which contains all the necessary input + /// for the calculation. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + void Calculate(HydraulicLoadsCalculationInput input); + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + void Cancel(); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IOvertoppingCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IOvertoppingCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IOvertoppingCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,84 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input.Overtopping; +using Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator which calculates probability of failure by overtopping or overflow + /// and the associated wave height. + /// + public interface IOvertoppingCalculator + { + /// + /// Gets the probability of failure. + /// + double ExceedanceProbabilityBeta { get; } + + /// + /// Gets an indication of the height of the wave. + /// + double WaveHeight { get; } + + /// + /// Gets a value representing whether overtopping is dominant over overflow. + /// + bool IsOvertoppingDominant { get; } + + /// + /// Gets the temporary output directory that is generated during the Hydra-Ring calculation. + /// + string OutputDirectory { get; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + string LastErrorFileContent { get; } + + /// + /// Gets the result of parsing the illustration points in the Hydra-Ring database. + /// + GeneralResult IllustrationPointsResult { get; } + + /// + /// Gets the error message when parsing the illustration points. + /// + string IllustrationPointsParserErrorMessage { get; } + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The which contains all the necessary input + /// for the calculation. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + void Calculate(OvertoppingCalculationInput input); + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + void Cancel(); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IStructuresCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IStructuresCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IStructuresCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,75 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator calculating probability of failure by a structure. + /// This is used in a structures assessment. + /// + /// The type of the input. + public interface IStructuresCalculator where TInput : ExceedanceProbabilityCalculationInput + { + /// + /// Gets the probability of failure. + /// + double ExceedanceProbabilityBeta { get; } + + /// + /// Gets the temporary output directory that is generated during the Hydra-Ring calculation. + /// + string OutputDirectory { get; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + string LastErrorFileContent { get; } + + /// + /// Gets the result of parsing the illustration points in the Hydra-Ring database. + /// + GeneralResult IllustrationPointsResult { get; } + + /// + /// Gets the error message when parsing the illustration points. + /// + string IllustrationPointsParserErrorMessage { get; } + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The which contains all the necessary input + /// for the calculation. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + void Calculate(TInput input); + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + void Cancel(); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IWaveConditionsCosineCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IWaveConditionsCosineCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IWaveConditionsCosineCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,93 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input.WaveConditions; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator which calculates values for a wave at a water level. + /// These are used in different failure mechanisms as input. + /// + public interface IWaveConditionsCosineCalculator + { + /// + /// Gets the height of the wave. + /// [m] + /// + double WaveHeight { get; } + + /// + /// Gets the angle of the wave with respect to the dike normal. + /// [deg] + /// + double WaveAngle { get; } + + /// + /// Gets the direction of the wave with respect to the North. + /// [deg] + /// + double WaveDirection { get; } + + /// + /// Gets the peak period of the wave. + /// [s] + /// + double WavePeakPeriod { get; } + + /// + /// Gets the calculated reliability index. + /// [-] + /// + double ReliabilityIndex { get; } + + /// + /// Gets the value indicating whether the calculation converged. + /// + bool? Converged { get; } + + /// + /// Gets the temporary output directory that is generated during the Hydra-Ring calculation.s + /// + string OutputDirectory { get; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + string LastErrorFileContent { get; } + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The which contains all the necessary input + /// for the calculation. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + void Calculate(WaveConditionsCosineCalculationInput input); + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + void Cancel(); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IWaveHeightCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IWaveHeightCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/IWaveHeightCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,84 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator which calculates a wave height associated with a + /// reliability index. + /// + public interface IWaveHeightCalculator + { + /// + /// Gets the wave height resulting from iterating towards the reliability index. + /// + double WaveHeight { get; } + + /// + /// The reliability index towards which was iterated. + /// + double ReliabilityIndex { get; } + + /// + /// Gets the result of parsing the illustration points in the Hydra-Ring database. + /// + GeneralResult IllustrationPointsResult { get; } + + /// + /// Gets the value indicating whether the calculation converged. + /// + bool? Converged { get; } + + /// + /// Gets the temporary output directory that is generated during the Hydra-Ring calculation. + /// + string OutputDirectory { get; } + + /// + /// Gets the content of the last error file generated during the Hydra-Ring calculation. + /// + string LastErrorFileContent { get; } + + /// + /// Gets the error message when parsing the illustration points. + /// + string IllustrationPointsParserErrorMessage { get; } + + /// + /// Performs the actual calculation by running the Hydra-Ring executable. + /// + /// The which contains all the necessary input + /// for the calculation. + /// Thrown when an error occurs while performing the calculation. + /// Thrown when preprocessor directory is required but not specified. + void Calculate(WaveHeightCalculationInput input); + + /// + /// Cancels any currently running Hydra-Ring calculation. + /// + void Cancel(); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/OvertoppingCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/OvertoppingCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/OvertoppingCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,91 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Input.Overtopping; +using Riskeer.HydraRing.Calculation.Parsers; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Calculator for calculating probability of failure by overtopping or overflow and the + /// associated wave height. This is used in a grass cover erosion inwards assessment. + /// + internal class OvertoppingCalculator : HydraRingCalculatorBase, IOvertoppingCalculator + { + private readonly ExceedanceProbabilityCalculationParser exceedanceProbabilityCalculationParser; + private readonly OvertoppingCalculationWaveHeightParser waveHeightParser; + + /// + /// Create a new instance of . + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + internal OvertoppingCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) + { + exceedanceProbabilityCalculationParser = new ExceedanceProbabilityCalculationParser(); + waveHeightParser = new OvertoppingCalculationWaveHeightParser(); + + ExceedanceProbabilityBeta = double.NaN; + WaveHeight = double.NaN; + IsOvertoppingDominant = false; + } + + public double ExceedanceProbabilityBeta { get; private set; } + + public double WaveHeight { get; private set; } + + public bool IsOvertoppingDominant { get; private set; } + + public void Calculate(OvertoppingCalculationInput input) + { + Calculate(HydraRingUncertaintiesType.All, input); + } + + protected override IEnumerable GetParsers() + { + yield return exceedanceProbabilityCalculationParser; + yield return waveHeightParser; + } + + protected override void SetOutputs() + { + if (exceedanceProbabilityCalculationParser.Output.HasValue) + { + ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Value; + } + + if (waveHeightParser.Output != null) + { + WaveHeight = waveHeightParser.Output.WaveHeight; + } + + IsOvertoppingDominant = waveHeightParser.Output != null && waveHeightParser.Output.IsOvertoppingDominant; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/StructuresCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/StructuresCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/StructuresCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,75 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Parsers; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Calculator for calculating probability of failure by a structure. + /// This is used in a structures assessment. + /// + /// The type of the input. + internal class StructuresCalculator : HydraRingCalculatorBase, IStructuresCalculator + where TInput : ExceedanceProbabilityCalculationInput + { + private readonly ExceedanceProbabilityCalculationParser exceedanceProbabilityCalculationParser; + + /// + /// Creates a new instance of . + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + public StructuresCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) + { + exceedanceProbabilityCalculationParser = new ExceedanceProbabilityCalculationParser(); + ExceedanceProbabilityBeta = double.NaN; + } + + public double ExceedanceProbabilityBeta { get; private set; } + + public void Calculate(TInput input) + { + Calculate(HydraRingUncertaintiesType.All, input); + } + + protected override IEnumerable GetParsers() + { + yield return exceedanceProbabilityCalculationParser; + } + + protected override void SetOutputs() + { + if (exceedanceProbabilityCalculationParser.Output.HasValue) + { + ExceedanceProbabilityBeta = exceedanceProbabilityCalculationParser.Output.Value; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/WaveConditionsCosineCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/WaveConditionsCosineCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/WaveConditionsCosineCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,105 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Input.WaveConditions; +using Riskeer.HydraRing.Calculation.Parsers; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Interface for a calculator which calculates values for a wave at a water level. + /// These are used in different failure mechanisms as input. + /// + internal class WaveConditionsCosineCalculator : HydraRingCalculatorBase, IWaveConditionsCosineCalculator + { + private readonly WaveConditionsCalculationParser waveConditionsCalculationParser; + private readonly ReliabilityIndexCalculationParser reliabilityIndexCalculationParser; + private readonly ConvergenceParser convergenceParser; + + /// + /// Create a new instance of . + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + internal WaveConditionsCosineCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) + { + waveConditionsCalculationParser = new WaveConditionsCalculationParser(); + reliabilityIndexCalculationParser = new ReliabilityIndexCalculationParser(); + convergenceParser = new ConvergenceParser(); + + WaveHeight = double.NaN; + WaveAngle = double.NaN; + WavePeakPeriod = double.NaN; + WaveDirection = double.NaN; + ReliabilityIndex = double.NaN; + } + + public double WaveHeight { get; private set; } + + public double WaveAngle { get; private set; } + + public double WavePeakPeriod { get; private set; } + + public double WaveDirection { get; private set; } + + public double ReliabilityIndex { get; private set; } + + public bool? Converged { get; private set; } + + public void Calculate(WaveConditionsCosineCalculationInput input) + { + Calculate(HydraRingUncertaintiesType.All, input); + } + + protected override IEnumerable GetParsers() + { + yield return waveConditionsCalculationParser; + yield return reliabilityIndexCalculationParser; + yield return convergenceParser; + } + + protected override void SetOutputs() + { + if (waveConditionsCalculationParser.Output != null) + { + WaveHeight = waveConditionsCalculationParser.Output.WaveHeight; + WaveAngle = waveConditionsCalculationParser.Output.WaveAngle; + WaveDirection = waveConditionsCalculationParser.Output.WaveDirection; + WavePeakPeriod = waveConditionsCalculationParser.Output.WavePeakPeriod; + } + + if (reliabilityIndexCalculationParser.Output != null) + { + ReliabilityIndex = reliabilityIndexCalculationParser.Output.CalculatedReliabilityIndex; + } + + Converged = convergenceParser.Output; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/WaveHeightCalculator.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/WaveHeightCalculator.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Calculator/WaveHeightCalculator.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,85 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Input.Hydraulics; +using Riskeer.HydraRing.Calculation.Parsers; + +namespace Riskeer.HydraRing.Calculation.Calculator +{ + /// + /// Calculator which calculates the wave height associated to the result of iterating towards a + /// probability of failure given a norm. + /// + internal class WaveHeightCalculator : HydraRingCalculatorBase, IWaveHeightCalculator + { + private readonly ReliabilityIndexCalculationParser targetProbabilityParser; + private readonly ConvergenceParser convergenceParser; + + /// + /// Create a new instance of . + /// + /// The with the + /// Hydra-Ring calculation settings. + /// Thrown when + /// is null. + /// Preprocessing is disabled when + /// equals . + internal WaveHeightCalculator(HydraRingCalculationSettings calculationSettings) : base(calculationSettings) + { + targetProbabilityParser = new ReliabilityIndexCalculationParser(); + convergenceParser = new ConvergenceParser(); + + WaveHeight = double.NaN; + ReliabilityIndex = double.NaN; + } + + public double WaveHeight { get; private set; } + + public double ReliabilityIndex { get; private set; } + public bool? Converged { get; private set; } + + public void Calculate(WaveHeightCalculationInput input) + { + Calculate(HydraRingUncertaintiesType.All, input); + } + + protected override IEnumerable GetParsers() + { + yield return targetProbabilityParser; + yield return convergenceParser; + } + + protected override void SetOutputs() + { + if (targetProbabilityParser.Output != null) + { + WaveHeight = targetProbabilityParser.Output.Result; + ReliabilityIndex = targetProbabilityParser.Output.CalculatedReliabilityIndex; + } + + Converged = convergenceParser.Output; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Defaults/FailureMechanismDefaults.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Defaults/FailureMechanismDefaults.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Defaults/FailureMechanismDefaults.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,85 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; + +namespace Riskeer.HydraRing.Calculation.Data.Defaults +{ + /// + /// Container for failure mechanism defaults. + /// + public class FailureMechanismDefaults + { + /// + /// Creates a new instance of the class. + /// + /// The mechanism id. + /// The sub mechanism ids that are applicable. + /// The fault tree model id. + /// The fault tree model id to be used when running the preprocessor. + /// The mechanism id to be used when running the preprocessor. + public FailureMechanismDefaults(int mechanismId, IEnumerable subMechanismIds, int faultTreeModelId, + int preprocessorFaultTreeModelId, int preprocessorMechanismId) + { + MechanismId = mechanismId; + SubMechanismIds = subMechanismIds; + FaultTreeModelId = faultTreeModelId; + PreprocessorFaultTreeModelId = preprocessorFaultTreeModelId; + PreprocessorMechanismId = preprocessorMechanismId; + } + + /// + /// Gets the mechanism id. + /// + public int MechanismId { get; } + + /// + /// Gets the sub mechanism ids that are applicable. + /// + public IEnumerable SubMechanismIds { get; } + + /// + /// Gets the fault tree model id. + /// + public int FaultTreeModelId { get; } + + /// + /// Gets the fault tree model id to be used when running the preprocessor. + /// + public int PreprocessorFaultTreeModelId { get; } + + /// + /// Gets the mechanism id to be used when running the preprocessor. + /// + public int PreprocessorMechanismId { get; } + + /// + /// Gets the sub mechanism id to be used when running the preprocessor. + /// + public int PreprocessorSubMechanismId + { + get + { + return 7; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Defaults/VariableDefaults.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Defaults/VariableDefaults.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Defaults/VariableDefaults.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Defaults +{ + /// + /// Container for variable defaults. + /// + internal class VariableDefaults + { + /// + /// Creates a new instance of the class. + /// + /// The correlation length. + public VariableDefaults(double correlationLength) + { + CorrelationLength = correlationLength; + } + + /// + /// Gets the correlation length. + /// + public double CorrelationLength { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingBreakWater.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingBreakWater.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingBreakWater.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Container for Hydra-Ring break water related data. + /// + public class HydraRingBreakWater + { + /// + /// Creates a new instance of . + /// + /// The break water type. + /// The break water height. + public HydraRingBreakWater(int type, double height) + { + Type = type; + Height = height; + } + + /// + /// Gets the type. + /// + public int Type { get; } + + /// + /// Gets the height. + /// + public double Height { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingDeviationType.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingDeviationType.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingDeviationType.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,35 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Enumeration that defines the deviation types supported by Hydra-Ring. + /// + /// + /// The integer values correspond to deviation ids defined within Hydra-Ring. + /// + public enum HydraRingDeviationType + { + Variation = 0, + Standard = 1 + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingDistributionType.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingDistributionType.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingDistributionType.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,38 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Enumeration that defines the distribution types supported by Hydra-Ring. + /// + /// + /// The integer values correspond to distribution ids defined within Hydra-Ring. + /// + public enum HydraRingDistributionType + { + Deterministic = 0, + Normal = 2, + LogNormal = 4, // Also applies to log-normal distributions with a non-zero shift + RayleighN = 18, + TruncatedNormal = 19 + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingFailureMechanismType.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingFailureMechanismType.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingFailureMechanismType.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,46 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Enumeration that defines the failure mechanism types supported by Hydra-Ring. + /// + /// + /// The integer values DON'T correspond to failure mechanism ids defined within Hydra-Ring. + /// They DO, however, correspond to ids in the Hydra-Ring settings database files. + /// + public enum HydraRingFailureMechanismType + { + AssessmentLevel = 0, + QVariant = 1, + WaveHeight = 2, + WavePeakPeriod = 3, + WaveSpectralPeriod = 4, + DikeHeight = 5, + DikesOvertopping = 6, + StructuresOvertopping = 7, + StructuresClosure = 8, + StructuresStructuralFailure = 9, + DunesBoundaryConditions = 10, + OvertoppingRate = 11 + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingForelandPoint.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingForelandPoint.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingForelandPoint.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Container for Hydra-Ring foreland point related data. + /// + public class HydraRingForelandPoint + { + /// + /// Creates a new instance of the class. + /// + /// The X-coordinate. + /// The Z-coordinate. + public HydraRingForelandPoint(double x, double z) + { + X = x; + Z = z; + } + + /// + /// Gets the X-coordinate. + /// + public double X { get; } + + /// + /// Gets the Z-coordinate. + /// + public double Z { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingProfilePoint.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingProfilePoint.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingProfilePoint.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,61 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Container for Hydra-Ring profile point related data. + /// + public class HydraRingProfilePoint + { + /// + /// Creates a new instance of the class. + /// + /// The X-coordinate. + /// The Z-coordinate. + public HydraRingProfilePoint(double x, double z) + { + X = x; + Z = z; + } + + /// + /// Gets the X-coordinate. + /// + public double X { get; } + + /// + /// Gets the Z-coordinate. + /// + public double Z { get; } + + /// + /// Gets the reduction factor. + /// + public virtual double Roughness + { + get + { + return 1.0; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingSection.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingSection.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingSection.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,60 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Container for Hydra-Ring (cross) section data. + /// + public class HydraRingSection + { + /// + /// Creates a new instance of the class. + /// + /// The unique identifier of the section. + /// The length of the section. + /// The normal of the cross section. + public HydraRingSection(int sectionId, double sectionLength, double crossSectionNormal) + { + SectionId = sectionId; + SectionLength = sectionLength; + CrossSectionNormal = crossSectionNormal; + } + + /// + /// Gets the id of the section. + /// + public int SectionId { get; } + + /// + /// Gets the length of the section. + /// + public double SectionLength { get; } + + /// + /// Gets the normal of the cross section. + /// + /// + /// The normal corresponds to the angle of the straight line perpendicular to the stretch at the location of the cross section (with respect to the north). + /// + public double CrossSectionNormal { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingUncertaintiesType.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingUncertaintiesType.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/HydraRingUncertaintiesType.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,52 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data +{ + /// + /// Enumeration that defines the uncertainties types supported by Hydra-Ring. + /// + /// + /// The integer values correspond to uncertainties ids defined within Hydra-Ring. + /// + public enum HydraRingUncertaintiesType + { + /// + /// No uncertainties. + /// + None = 0, + + /// + /// All uncertainties. + /// + All = 1, + + /// + /// Only model uncertainties. + /// + Model = 2, + + /// + /// Only statistical uncertainties. + /// + Statistic = 3 + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/ExceedanceProbabilityCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/ExceedanceProbabilityCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/ExceedanceProbabilityCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,44 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Input +{ + /// + /// Container of all data necessary for performing Hydra-Ring calculations that compute a + /// probability of failure. + /// + public abstract class ExceedanceProbabilityCalculationInput : HydraRingCalculationInput + { + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location to use during the calculation. + protected ExceedanceProbabilityCalculationInput(long hydraulicBoundaryLocationId) : base(hydraulicBoundaryLocationId) {} + + public override int CalculationTypeId + { + get + { + return 1; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/HydraRingCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/HydraRingCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/HydraRingCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,164 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Settings; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input +{ + /// + /// Container of all data necessary for performing a Hydra-Ring calculation. + /// + public abstract class HydraRingCalculationInput + { + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location to use during the calculation. + protected HydraRingCalculationInput(long hydraulicBoundaryLocationId) + { + HydraulicBoundaryLocationId = hydraulicBoundaryLocationId; + } + + /// + /// Gets or sets the preprocessor settings. + /// + public PreprocessorSetting PreprocessorSetting { get; set; } + + /// + /// Gets or sets the design tables settings. + /// + public DesignTablesSetting DesignTablesSetting { get; set; } + + /// + /// Gets or sets the collection of numerics settings specified per sub mechanism. + /// + public Dictionary NumericsSettings { get; set; } + + /// + /// Gets or sets the time integration settings. + /// + public TimeIntegrationSetting TimeIntegrationSetting { get; set; } + + /// + /// Gets the . + /// + public abstract HydraRingFailureMechanismType FailureMechanismType { get; } + + /// + /// Gets the id corresponding to the type of calculation that should be performed. + /// + public abstract int CalculationTypeId { get; } + + /// + /// Gets the id of the variable that is relevant during the calculation. + /// + public abstract int VariableId { get; } + + /// + /// Gets the id of the hydraulic boundary location to use during the calculation. + /// + public long HydraulicBoundaryLocationId { get; } + + /// + /// Gets the section to perform the calculation for. + /// + public abstract HydraRingSection Section { get; } + + /// + /// Gets the variables to use during the calculation. + /// + public virtual IEnumerable Variables + { + get + { + yield break; + } + } + + /// + /// Gets the profile points to use during the calculation. + /// + public virtual IEnumerable ProfilePoints + { + get + { + yield break; + } + } + + /// + /// Gets the foreland points to use during the calculation. + /// + public virtual IEnumerable ForelandsPoints + { + get + { + yield break; + } + } + + /// + /// Gets the break water to use during the calculation. + /// + public virtual HydraRingBreakWater BreakWater + { + get + { + return null; + } + } + + /// + /// Gets the reliability index to use during the calculation. + /// + /// Only relevant for calculations that iterate towards a reliability index. + public virtual double Beta + { + get + { + return double.NaN; + } + } + + /// + /// Gets the iteration method id to use during the calculation. + /// + public virtual int IterationMethodId + { + get + { + return 3; + } + } + + /// + /// Gets the sub mechanism model id corresponding to the provided sub mechanism id. + /// + /// The sub mechanism id to get the sub mechanism model id for. + /// The corresponding sub mechanism model id or null otherwise. + public virtual int? GetSubMechanismModelId(int subMechanismId) + { + return null; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/HydraRingCalculationSettings.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/HydraRingCalculationSettings.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/HydraRingCalculationSettings.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,64 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; + +namespace Riskeer.HydraRing.Calculation.Data.Input +{ + /// + /// Class which holds all the general information to run a Hydra-Ring calculation. + /// + public class HydraRingCalculationSettings + { + /// + /// Creates a new instance of . + /// + /// The path which points to the HLCD file. + /// The preprocessor directory to be used for the calculations. + /// Thrown when any parameter is null. + public HydraRingCalculationSettings(string hlcdFilePath, + string preprocessorDirectory) + { + if (hlcdFilePath == null) + { + throw new ArgumentNullException(nameof(hlcdFilePath)); + } + + if (preprocessorDirectory == null) + { + throw new ArgumentNullException(nameof(preprocessorDirectory)); + } + + HlcdFilePath = hlcdFilePath; + PreprocessorDirectory = preprocessorDirectory; + } + + /// + /// Gets the HLCD filepath. + /// + public string HlcdFilePath { get; } + + /// + /// Gets the preprocessor director. + /// + public string PreprocessorDirectory { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/AssessmentLevelCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/AssessmentLevelCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/AssessmentLevelCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,70 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Hydraulics +{ + /// + /// Container of all data necessary for performing an assessment level calculation via Hydra-Ring. + /// + public class AssessmentLevelCalculationInput : ReliabilityIndexCalculationInput + { + /// + /// Creates a new instance of the class. + /// + /// The id of the section. + /// The id of the hydraulic boundary location. + /// The norm. + public AssessmentLevelCalculationInput(int sectionId, long hydraulicBoundaryLocationId, double norm) + : base(hydraulicBoundaryLocationId, norm) + { + Section = new HydraRingSection(sectionId, double.NaN, double.NaN); + } + + public override HydraRingFailureMechanismType FailureMechanismType + { + get + { + return HydraRingFailureMechanismType.AssessmentLevel; + } + } + + public override int VariableId + { + get + { + return 26; + } + } + + public override HydraRingSection Section { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(26, 0); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/DikeHeightCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/DikeHeightCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/DikeHeightCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,128 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Input.Overtopping; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Hydraulics +{ + /// + /// Container for all data necessary for performing a dike height calculation via Hydra-Ring. + /// + public class DikeHeightCalculationInput : HydraulicLoadsCalculationInput + { + private readonly double criticalOvertoppingMean; + private readonly double criticalOvertoppingStandardDeviation; + + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location. + /// The norm. + /// The normal of the section. + /// The profile points. + /// The foreland points. + /// The break water. + /// The model factor critical overtopping. + /// The mean of the factor Fb + /// The standard deviation of the factor Fb. + /// The lower boundary of the factor Fb. + /// The upper boundary of the factor Fb. + /// The mean of the factor Fn. + /// The standard deviation of the factor Fn. + /// The lower boundary of the factor Fn. + /// The upper boundary of the factor Fn. + /// The factor overtopping. + /// The mean of the critical overtopping. + /// The standard deviation of the critical overtopping. + /// The mean of the factor frunup. + /// The standard deviation of the factor frunup. + /// The lower boundary of the factor frunup. + /// The upper boundary of the factor frunup. + /// The mean of the exponent model factor shallow. + /// The standard deviation of the exponent model factor shallow. + /// The lower boundary of the exponent model factor shallow. + /// The upper boundary of the exponent model factor shallow. + public DikeHeightCalculationInput(long hydraulicBoundaryLocationId, + double norm, + double sectionNormal, + IEnumerable profilePoints, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double modelFactorCriticalOvertopping, + double factorFbMean, double factorFbStandardDeviation, + double factorFbLowerBoundary, double factorFbUpperBoundary, + double factorFnMean, double factorFnStandardDeviation, + double factorFnLowerBoundary, double factorFnUpperBoundary, + double modelFactorOvertopping, + double criticalOvertoppingMean, double criticalOvertoppingStandardDeviation, + double modelFactorFrunupMean, double modelFactorFrunupStandardDeviation, + double modelFactorFrunupLowerBoundary, double modelFactorFrunupUpperBoundary, + double exponentModelFactorShallowMean, double exponentModelFactorShallowStandardDeviation, + double exponentModelFactorShallowLowerBoundary, double exponentModelFactorShallowUpperBoundary) + : base(hydraulicBoundaryLocationId, + norm, + sectionNormal, + profilePoints, + forelandPoints, + breakWater, + modelFactorCriticalOvertopping, + factorFbMean, factorFbStandardDeviation, + factorFbLowerBoundary, factorFbUpperBoundary, + factorFnMean, factorFnStandardDeviation, + factorFnLowerBoundary, factorFnUpperBoundary, + modelFactorOvertopping, + modelFactorFrunupMean, modelFactorFrunupStandardDeviation, + modelFactorFrunupLowerBoundary, modelFactorFrunupUpperBoundary, + exponentModelFactorShallowMean, exponentModelFactorShallowStandardDeviation, + exponentModelFactorShallowLowerBoundary, exponentModelFactorShallowUpperBoundary) + { + this.criticalOvertoppingMean = criticalOvertoppingMean; + this.criticalOvertoppingStandardDeviation = criticalOvertoppingStandardDeviation; + } + + public override HydraRingFailureMechanismType FailureMechanismType { get; } = HydraRingFailureMechanismType.DikeHeight; + + public override int VariableId { get; } = 1; + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + private IEnumerable GetVariables() + { + yield return new DeterministicHydraRingVariable(1, 0.0); + yield return new LogNormalHydraRingVariable(17, + HydraRingDeviationType.Standard, + criticalOvertoppingMean, + criticalOvertoppingStandardDeviation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/DunesBoundaryConditionsCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/DunesBoundaryConditionsCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/DunesBoundaryConditionsCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,42 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Input.Hydraulics +{ + /// + /// Container of all data necessary for performing a dunes boundary conditions calculation via Hydra-Ring. + /// + public class DunesBoundaryConditionsCalculationInput : AssessmentLevelCalculationInput + { + /// + /// Creates a new instance of the class. + /// + /// The id of the section. + /// The id of the hydraulic boundary location. + /// The norm. + public DunesBoundaryConditionsCalculationInput(int sectionId, long hydraulicBoundaryLocationId, double norm) + : base(sectionId, hydraulicBoundaryLocationId, norm) {} + + public override HydraRingFailureMechanismType FailureMechanismType { get; } = HydraRingFailureMechanismType.DunesBoundaryConditions; + + public override int CalculationTypeId { get; } = 2; + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/HydraulicLoadsCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/HydraulicLoadsCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/HydraulicLoadsCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,160 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Input.Overtopping; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Hydraulics +{ + /// + /// Container for all data necessary for performing a hydraulic loads calculation via Hydra-Ring. + /// + public abstract class HydraulicLoadsCalculationInput : ReliabilityIndexCalculationInput + { + private readonly double modelFactorCriticalOvertopping; + private readonly double factorFbMean; + private readonly double factorFbStandardDeviation; + private readonly double factorFbLowerBoundary; + private readonly double factorFbUpperBoundary; + private readonly double factorFnMean; + private readonly double factorFnStandardDeviation; + private readonly double factorFnLowerBoundary; + private readonly double factorFnUpperBoundary; + private readonly double modelFactorOvertopping; + private readonly double modelFactorFrunupMean; + private readonly double modelFactorFrunupStandardDeviation; + private readonly double modelFactorFrunupLowerBoundary; + private readonly double modelFactorFrunupUpperBoundary; + private readonly double exponentModelFactorShallowMean; + private readonly double exponentModelFactorShallowStandardDeviation; + private readonly double exponentModelFactorShallowLowerBoundary; + private readonly double exponentModelFactorShallowUpperBoundary; + + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location. + /// The norm. + /// The normal of the section. + /// The profile points. + /// The foreland points. + /// The break water. + /// The model factor critical overtopping. + /// The mean of the factor Fb + /// The standard deviation of the factor Fb. + /// The lower boundary of the factor Fb. + /// The upper boundary of the factor Fb. + /// The mean of the factor Fn. + /// The standard deviation of the factor Fn. + /// The lower boundary of the factor Fn. + /// The upper boundary of the factor Fn. + /// The factor overtopping. + /// The mean of the factor frunup. + /// The standard deviation of the factor frunup. + /// The lower boundary of the factor frunup. + /// The upper boundary of the factor frunup. + /// The mean of the exponent model factor shallow. + /// The standard deviation of the exponent model factor shallow. + /// The lower boundary of the exponent model factor shallow. + /// The upper boundary of the exponent model factor shallow. + protected HydraulicLoadsCalculationInput(long hydraulicBoundaryLocationId, double norm, + double sectionNormal, + IEnumerable profilePoints, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double modelFactorCriticalOvertopping, + double factorFbMean, double factorFbStandardDeviation, + double factorFbLowerBoundary, double factorFbUpperBoundary, + double factorFnMean, double factorFnStandardDeviation, + double factorFnLowerBoundary, double factorFnUpperBoundary, + double modelFactorOvertopping, + double modelFactorFrunupMean, double modelFactorFrunupStandardDeviation, + double modelFactorFrunupLowerBoundary, double modelFactorFrunupUpperBoundary, + double exponentModelFactorShallowMean, double exponentModelFactorShallowStandardDeviation, + double exponentModelFactorShallowLowerBoundary, double exponentModelFactorShallowUpperBoundary) + : base(hydraulicBoundaryLocationId, norm) + { + Section = new HydraRingSection(1, double.NaN, sectionNormal); + ProfilePoints = profilePoints; + ForelandsPoints = forelandPoints; + BreakWater = breakWater; + + this.modelFactorCriticalOvertopping = modelFactorCriticalOvertopping; + this.factorFbMean = factorFbMean; + this.factorFbStandardDeviation = factorFbStandardDeviation; + this.factorFbLowerBoundary = factorFbLowerBoundary; + this.factorFbUpperBoundary = factorFbUpperBoundary; + this.factorFnMean = factorFnMean; + this.factorFnStandardDeviation = factorFnStandardDeviation; + this.factorFnLowerBoundary = factorFnLowerBoundary; + this.factorFnUpperBoundary = factorFnUpperBoundary; + this.modelFactorOvertopping = modelFactorOvertopping; + this.modelFactorFrunupMean = modelFactorFrunupMean; + this.modelFactorFrunupStandardDeviation = modelFactorFrunupStandardDeviation; + this.modelFactorFrunupLowerBoundary = modelFactorFrunupLowerBoundary; + this.modelFactorFrunupUpperBoundary = modelFactorFrunupUpperBoundary; + this.exponentModelFactorShallowMean = exponentModelFactorShallowMean; + this.exponentModelFactorShallowStandardDeviation = exponentModelFactorShallowStandardDeviation; + this.exponentModelFactorShallowLowerBoundary = exponentModelFactorShallowLowerBoundary; + this.exponentModelFactorShallowUpperBoundary = exponentModelFactorShallowUpperBoundary; + } + + public override HydraRingSection Section { get; } + + public override IEnumerable ProfilePoints { get; } + + public override IEnumerable ForelandsPoints { get; } + + public override HydraRingBreakWater BreakWater { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(8, modelFactorCriticalOvertopping); + yield return new TruncatedNormalHydraRingVariable(10, HydraRingDeviationType.Standard, factorFbMean, factorFbStandardDeviation, + factorFbLowerBoundary, factorFbUpperBoundary); + yield return new TruncatedNormalHydraRingVariable(11, HydraRingDeviationType.Standard, factorFnMean, factorFnStandardDeviation, + factorFnLowerBoundary, factorFnUpperBoundary); + yield return new DeterministicHydraRingVariable(12, modelFactorOvertopping); + yield return new TruncatedNormalHydraRingVariable(120, HydraRingDeviationType.Standard, modelFactorFrunupMean, modelFactorFrunupStandardDeviation, + modelFactorFrunupLowerBoundary, modelFactorFrunupUpperBoundary); + yield return new TruncatedNormalHydraRingVariable(123, HydraRingDeviationType.Standard, exponentModelFactorShallowMean, + exponentModelFactorShallowStandardDeviation, exponentModelFactorShallowLowerBoundary, + exponentModelFactorShallowUpperBoundary); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 102: + return 94; + case 103: + return 95; + default: + return null; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/OvertoppingRateCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/OvertoppingRateCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/OvertoppingRateCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,130 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Input.Overtopping; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Hydraulics +{ + /// + /// Container for all data necessary for performing an overtopping rate calculation via Hydra-Ring. + /// + public class OvertoppingRateCalculationInput : HydraulicLoadsCalculationInput + { + private readonly double dikeHeight; + + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location. + /// The norm. + /// The normal of the section. + /// The profile points. + /// The foreland points. + /// The break water. + /// The dike height. + /// The model factor critical overtopping. + /// The mean of the factor Fb + /// The standard deviation of the factor Fb. + /// The lower boundary of the factor Fb. + /// The upper boundary of the factor Fb. + /// The mean of the factor Fn. + /// The standard deviation of the factor Fn. + /// The lower boundary of the factor Fn. + /// The upper boundary of the factor Fn. + /// The factor overtopping. + /// The mean of the factor frunup. + /// The standard deviation of the factor frunup. + /// The lower boundary of the factor frunup. + /// The upper boundary of the factor frunup. + /// The mean of the exponent model factor shallow. + /// The standard deviation of the exponent model factor shallow. + /// The lower boundary of the exponent model factor shallow. + /// The upper boundary of the exponent model factor shallow. + public OvertoppingRateCalculationInput(long hydraulicBoundaryLocationId, + double norm, + double sectionNormal, + IEnumerable profilePoints, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double dikeHeight, + double modelFactorCriticalOvertopping, + double factorFbMean, double factorFbStandardDeviation, + double factorFbLowerBoundary, double factorFbUpperBoundary, + double factorFnMean, double factorFnStandardDeviation, + double factorFnLowerBoundary, double factorFnUpperBoundary, + double modelFactorOvertopping, + double modelFactorFrunupMean, double modelFactorFrunupStandardDeviation, + double modelFactorFrunupLowerBoundary, double modelFactorFrunupUpperBoundary, + double exponentModelFactorShallowMean, double exponentModelFactorShallowStandardDeviation, + double exponentModelFactorShallowLowerBoundary, double exponentModelFactorShallowUpperBoundary) + : base(hydraulicBoundaryLocationId, + norm, + sectionNormal, + profilePoints, + forelandPoints, + breakWater, + modelFactorCriticalOvertopping, + factorFbMean, factorFbStandardDeviation, + factorFbLowerBoundary, factorFbUpperBoundary, + factorFnMean, factorFnStandardDeviation, + factorFnLowerBoundary, factorFnUpperBoundary, + modelFactorOvertopping, + modelFactorFrunupMean, modelFactorFrunupStandardDeviation, + modelFactorFrunupLowerBoundary, modelFactorFrunupUpperBoundary, + exponentModelFactorShallowMean, exponentModelFactorShallowStandardDeviation, + exponentModelFactorShallowLowerBoundary, exponentModelFactorShallowUpperBoundary) + { + this.dikeHeight = dikeHeight; + } + + public override HydraRingFailureMechanismType FailureMechanismType { get; } = HydraRingFailureMechanismType.OvertoppingRate; + + public override int VariableId { get; } = 17; + + public override int CalculationTypeId + { + get + { + return 2; + } + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + private IEnumerable GetVariables() + { + yield return new DeterministicHydraRingVariable(1, dikeHeight); + yield return new DeterministicHydraRingVariable(17, 0.0); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/WaveHeightCalculationInput .cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/WaveHeightCalculationInput .cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Hydraulics/WaveHeightCalculationInput .cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,70 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Hydraulics +{ + /// + /// Container of all data necessary for performing a wave height calculation via Hydra-Ring. + /// + public class WaveHeightCalculationInput : ReliabilityIndexCalculationInput + { + /// + /// Creates a new instance of the class. + /// + /// The id of the section. + /// The id of the hydraulic boundary location. + /// The norm. + public WaveHeightCalculationInput(int sectionId, long hydraulicBoundaryLocationId, double norm) + : base(hydraulicBoundaryLocationId, norm) + { + Section = new HydraRingSection(sectionId, double.NaN, double.NaN); + } + + public override HydraRingFailureMechanismType FailureMechanismType + { + get + { + return HydraRingFailureMechanismType.WaveHeight; + } + } + + public override int VariableId + { + get + { + return 28; + } + } + + public override HydraRingSection Section { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(28, 0); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Overtopping/HydraRingRoughnessProfilePoint.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Overtopping/HydraRingRoughnessProfilePoint.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Overtopping/HydraRingRoughnessProfilePoint.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,42 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Input.Overtopping +{ + /// + /// Container for Hydra-Ring profile point related data with roughness. + /// + public class HydraRingRoughnessProfilePoint : HydraRingProfilePoint + { + /// + /// Creates a new instance of the class. + /// + /// The X-coordinate. + /// The Z-coordinate. + /// The reduction factor. + public HydraRingRoughnessProfilePoint(double x, double z, double roughness) : base(x, z) + { + Roughness = roughness; + } + + public override double Roughness { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Overtopping/OvertoppingCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Overtopping/OvertoppingCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Overtopping/OvertoppingCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,174 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Overtopping +{ + /// + /// Container of all data necessary for performing an overtopping calculation via Hydra-Ring. + /// + public class OvertoppingCalculationInput : ExceedanceProbabilityCalculationInput + { + private readonly double dikeHeight; + private readonly double modelFactorCriticalOvertopping; + private readonly double factorFbMean; + private readonly double factorFbStandardDeviation; + private readonly double factorFbLowerBoundary; + private readonly double factorFbUpperBoundary; + private readonly double factorFnMean; + private readonly double factorFnStandardDeviation; + private readonly double factorFnLowerBoundary; + private readonly double factorFnUpperBoundary; + private readonly double modelFactorOvertopping; + private readonly double criticalOvertoppingMean; + private readonly double criticalOvertoppingStandardDeviation; + private readonly double modelFactorFrunupMean; + private readonly double modelFactorFrunupStandardDeviation; + private readonly double modelFactorFrunupLowerBoundary; + private readonly double modelFactorFrunupUpperBoundary; + private readonly double exponentModelFactorShallowMean; + private readonly double exponentModelFactorShallowStandardDeviation; + private readonly double exponentModelFactorShallowLowerBoundary; + private readonly double exponentModelFactorShallowUpperBoundary; + + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The profile points. + /// The foreland points. + /// The break water. + /// The dike height. + /// The model factor critical overtopping. + /// The mean of the factor Fb + /// The standard deviation of the factor Fb. + /// The lower boundary of the factor Fb. + /// The upper boundary of the factor Fb. + /// The mean of the factor Fn. + /// The standard deviation of the factor Fn. + /// The lower boundary of the factor Fn. + /// The upper boundary of the factor Fn. + /// The factor overtopping. + /// The mean of the critical overtopping. + /// The standard deviation of the critical overtopping. + /// The mean of the factor frunup. + /// The standard deviation of the factor frunup. + /// The lower boundary of the factor frunup. + /// The upper boundary of the factor frunup. + /// The mean of the exponent model factor shallow. + /// The standard deviation of the exponent model factor shallow. + /// The lower boundary of the exponent model factor shallow. + /// The upper boundary of the exponent model factor shallow. + public OvertoppingCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable profilePoints, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double dikeHeight, + double modelFactorCriticalOvertopping, + double factorFbMean, double factorFbStandardDeviation, + double factorFbLowerBoundary, double factorFbUpperBoundary, + double factorFnMean, double factorFnStandardDeviation, + double factorFnLowerBoundary, double factorFnUpperBoundary, + double modelFactorOvertopping, + double criticalOvertoppingMean, double criticalOvertoppingStandardDeviation, + double modelFactorFrunupMean, double modelFactorFrunupStandardDeviation, + double modelFactorFrunupLowerBoundary, double modelFactorFrunupUpperBoundary, + double exponentModelFactorShallowMean, double exponentModelFactorShallowStandardDeviation, + double exponentModelFactorShallowLowerBoundary, double exponentModelFactorShallowUpperBoundary) + : base(hydraulicBoundaryLocationId) + { + Section = new HydraRingSection(1, double.NaN, sectionNormal); + ProfilePoints = profilePoints; + ForelandsPoints = forelandPoints; + BreakWater = breakWater; + this.dikeHeight = dikeHeight; + this.modelFactorCriticalOvertopping = modelFactorCriticalOvertopping; + this.factorFbMean = factorFbMean; + this.factorFbStandardDeviation = factorFbStandardDeviation; + this.factorFbLowerBoundary = factorFbLowerBoundary; + this.factorFbUpperBoundary = factorFbUpperBoundary; + this.factorFnMean = factorFnMean; + this.factorFnStandardDeviation = factorFnStandardDeviation; + this.factorFnLowerBoundary = factorFnLowerBoundary; + this.factorFnUpperBoundary = factorFnUpperBoundary; + this.modelFactorOvertopping = modelFactorOvertopping; + this.criticalOvertoppingMean = criticalOvertoppingMean; + this.criticalOvertoppingStandardDeviation = criticalOvertoppingStandardDeviation; + this.modelFactorFrunupMean = modelFactorFrunupMean; + this.modelFactorFrunupStandardDeviation = modelFactorFrunupStandardDeviation; + this.modelFactorFrunupLowerBoundary = modelFactorFrunupLowerBoundary; + this.modelFactorFrunupUpperBoundary = modelFactorFrunupUpperBoundary; + this.exponentModelFactorShallowMean = exponentModelFactorShallowMean; + this.exponentModelFactorShallowStandardDeviation = exponentModelFactorShallowStandardDeviation; + this.exponentModelFactorShallowLowerBoundary = exponentModelFactorShallowLowerBoundary; + this.exponentModelFactorShallowUpperBoundary = exponentModelFactorShallowUpperBoundary; + } + + public override HydraRingFailureMechanismType FailureMechanismType { get; } = HydraRingFailureMechanismType.DikesOvertopping; + + public override int VariableId { get; } = 1; + + public override HydraRingSection Section { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(1, dikeHeight); + yield return new DeterministicHydraRingVariable(8, modelFactorCriticalOvertopping); + yield return new TruncatedNormalHydraRingVariable(10, HydraRingDeviationType.Standard, factorFbMean, factorFbStandardDeviation, + factorFbLowerBoundary, factorFbUpperBoundary); + yield return new TruncatedNormalHydraRingVariable(11, HydraRingDeviationType.Standard, factorFnMean, factorFnStandardDeviation, + factorFnLowerBoundary, factorFnUpperBoundary); + yield return new DeterministicHydraRingVariable(12, modelFactorOvertopping); + yield return new LogNormalHydraRingVariable(17, HydraRingDeviationType.Standard, criticalOvertoppingMean, criticalOvertoppingStandardDeviation); + yield return new TruncatedNormalHydraRingVariable(120, HydraRingDeviationType.Standard, modelFactorFrunupMean, modelFactorFrunupStandardDeviation, + modelFactorFrunupLowerBoundary, modelFactorFrunupUpperBoundary); + yield return new TruncatedNormalHydraRingVariable(123, HydraRingDeviationType.Standard, exponentModelFactorShallowMean, + exponentModelFactorShallowStandardDeviation, exponentModelFactorShallowLowerBoundary, + exponentModelFactorShallowUpperBoundary); + } + } + + public override IEnumerable ProfilePoints { get; } + + public override IEnumerable ForelandsPoints { get; } + + public override HydraRingBreakWater BreakWater { get; } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 102: + return 94; + case 103: + return 95; + default: + return null; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/ReliabilityIndexCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/ReliabilityIndexCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/ReliabilityIndexCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,53 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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 Core.Common.Util; + +namespace Riskeer.HydraRing.Calculation.Data.Input +{ + /// + /// Container of all data necessary for performing Hydra-Ring calculations that + /// iterate towards a reliability index. + /// + public abstract class ReliabilityIndexCalculationInput : HydraRingCalculationInput + { + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location to use during the calculation. + /// The norm to use during the calculation. + /// As a part of the constructor, the is automatically converted into a reliability index. + protected ReliabilityIndexCalculationInput(long hydraulicBoundaryLocationId, double norm) : base(hydraulicBoundaryLocationId) + { + Beta = StatisticsConverter.ProbabilityToReliability(norm); + } + + public override int CalculationTypeId + { + get + { + return 9; + } + } + + public override double Beta { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,166 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a structures closure calculation via Hydra-Ring. + /// + public abstract class StructuresClosureCalculationInput : ExceedanceProbabilityCalculationInput + { + private readonly double gravitationalAcceleration; + private readonly double factorStormDurationOpenStructure; + private readonly double failureProbabilityOpenStructure; + private readonly double failureProbabilityReparation; + private readonly int identicalApertures; + private readonly double allowedLevelIncreaseStorageMean; + private readonly double allowedLevelIncreaseStorageStandardDeviation; + private readonly double modelFactorStorageVolumeMean; + private readonly double modelFactorStorageVolumeStandardDeviation; + private readonly double storageStructureAreaMean; + private readonly double storageStructureAreaVariation; + private readonly double modelFactorInflowVolume; + private readonly double flowWidthAtBottomProtectionMean; + private readonly double flowWidthAtBottomProtectionStandardDeviation; + private readonly double criticalOvertoppingDischargeMean; + private readonly double criticalOvertoppingDischargeVariation; + private readonly double failureProbabilityStructureWithErosion; + private readonly double stormDurationMean; + private readonly double stormDurationVariation; + private readonly double probabilityOpenStructureBeforeFlooding; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The gravitational acceleration. + /// The factor of the storm duration for an open structure. + /// The failure probability for an open structure. + /// The reparation failure probability. + /// The number of identical apertures. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The probability of an open structure before flooding. + protected StructuresClosureCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double gravitationalAcceleration, + double factorStormDurationOpenStructure, + double failureProbabilityOpenStructure, + double failureProbabilityReparation, + int identicalApertures, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double probabilityOpenStructureBeforeFlooding) + : base(hydraulicBoundaryLocationId) + { + Section = new HydraRingSection(1, double.NaN, sectionNormal); + ForelandsPoints = forelandPoints; + BreakWater = breakWater; + this.gravitationalAcceleration = gravitationalAcceleration; + this.factorStormDurationOpenStructure = factorStormDurationOpenStructure; + this.failureProbabilityOpenStructure = failureProbabilityOpenStructure; + this.failureProbabilityReparation = failureProbabilityReparation; + this.identicalApertures = identicalApertures; + this.allowedLevelIncreaseStorageMean = allowedLevelIncreaseStorageMean; + this.allowedLevelIncreaseStorageStandardDeviation = allowedLevelIncreaseStorageStandardDeviation; + this.modelFactorStorageVolumeMean = modelFactorStorageVolumeMean; + this.modelFactorStorageVolumeStandardDeviation = modelFactorStorageVolumeStandardDeviation; + this.storageStructureAreaMean = storageStructureAreaMean; + this.storageStructureAreaVariation = storageStructureAreaVariation; + this.modelFactorInflowVolume = modelFactorInflowVolume; + this.flowWidthAtBottomProtectionMean = flowWidthAtBottomProtectionMean; + this.flowWidthAtBottomProtectionStandardDeviation = flowWidthAtBottomProtectionStandardDeviation; + this.criticalOvertoppingDischargeMean = criticalOvertoppingDischargeMean; + this.criticalOvertoppingDischargeVariation = criticalOvertoppingDischargeVariation; + this.failureProbabilityStructureWithErosion = failureProbabilityStructureWithErosion; + this.stormDurationMean = stormDurationMean; + this.stormDurationVariation = stormDurationVariation; + this.probabilityOpenStructureBeforeFlooding = probabilityOpenStructureBeforeFlooding; + } + + public override HydraRingFailureMechanismType FailureMechanismType { get; } = HydraRingFailureMechanismType.StructuresClosure; + + public override int VariableId { get; } = 58; + + public override HydraRingSection Section { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(58, gravitationalAcceleration); + yield return new DeterministicHydraRingVariable(63, factorStormDurationOpenStructure); + yield return new DeterministicHydraRingVariable(68, failureProbabilityOpenStructure); + yield return new DeterministicHydraRingVariable(69, failureProbabilityReparation); + yield return new DeterministicHydraRingVariable(71, identicalApertures); + yield return new LogNormalHydraRingVariable(94, HydraRingDeviationType.Standard, allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation); + yield return new LogNormalHydraRingVariable(95, HydraRingDeviationType.Standard, modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation); + yield return new LogNormalHydraRingVariable(96, HydraRingDeviationType.Variation, storageStructureAreaMean, storageStructureAreaVariation); + yield return new DeterministicHydraRingVariable(97, modelFactorInflowVolume); + yield return new LogNormalHydraRingVariable(103, HydraRingDeviationType.Standard, flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation); + yield return new LogNormalHydraRingVariable(104, HydraRingDeviationType.Variation, criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation); + yield return new DeterministicHydraRingVariable(105, failureProbabilityStructureWithErosion); + yield return new LogNormalHydraRingVariable(108, HydraRingDeviationType.Variation, stormDurationMean, stormDurationVariation); + yield return new DeterministicHydraRingVariable(129, probabilityOpenStructureBeforeFlooding); + } + } + + public override IEnumerable ForelandsPoints { get; } + + public override HydraRingBreakWater BreakWater { get; } + + public override int IterationMethodId + { + get + { + return 6; + } + } + + public abstract override int? GetSubMechanismModelId(int subMechanismId); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureFloodedCulvertCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureFloodedCulvertCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureFloodedCulvertCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,151 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a flooded culvert based structures closure calculation via Hydra-Ring. + /// + public class StructuresClosureFloodedCulvertCalculationInput : StructuresClosureCalculationInput + { + private readonly double drainCoefficientMean; + private readonly double drainCoefficientStandardDeviation; + private readonly double areaFlowAperturesMean; + private readonly double areaFlowAperturesStandardDeviation; + private readonly double insideWaterLevelMean; + private readonly double insideWaterLevelStandardDeviation; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The gravitational acceleration. + /// The factor of the storm duration for an open structure. + /// The failure probability for an open structure. + /// The reparation failure probability. + /// The number of identical apertures. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The probability of an open structure before flooding. + /// The mean of the drain coefficient. + /// The standard deviation of the drain coefficient. + /// The mean of the area of flow apertures. + /// The standard deviation of the area of flow apertures. + /// The mean of the inside water level. + /// The standard deviation of the inside water level. + public StructuresClosureFloodedCulvertCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double gravitationalAcceleration, + double factorStormDurationOpenStructure, + double failureProbabilityOpenStructure, + double failureProbabilityReparation, + int identicalApertures, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double probabilityOpenStructureBeforeFlooding, + double drainCoefficientMean, double drainCoefficientStandardDeviation, + double areaFlowAperturesMean, double areaFlowAperturesStandardDeviation, + double insideWaterLevelMean, double insideWaterLevelStandardDeviation) + : base(hydraulicBoundaryLocationId, + sectionNormal, + forelandPoints, breakWater, + gravitationalAcceleration, + factorStormDurationOpenStructure, + failureProbabilityOpenStructure, + failureProbabilityReparation, + identicalApertures, + allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation, + modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation, + storageStructureAreaMean, storageStructureAreaVariation, + modelFactorInflowVolume, + flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation, + criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation, + failureProbabilityStructureWithErosion, + stormDurationMean, stormDurationVariation, + probabilityOpenStructureBeforeFlooding) + { + this.drainCoefficientMean = drainCoefficientMean; + this.drainCoefficientStandardDeviation = drainCoefficientStandardDeviation; + this.areaFlowAperturesMean = areaFlowAperturesMean; + this.areaFlowAperturesStandardDeviation = areaFlowAperturesStandardDeviation; + this.insideWaterLevelMean = insideWaterLevelMean; + this.insideWaterLevelStandardDeviation = insideWaterLevelStandardDeviation; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 424: + return 107; + case 425: + return 113; + default: + return null; + } + } + + private IEnumerable GetVariables() + { + yield return new NormalHydraRingVariable(66, HydraRingDeviationType.Standard, drainCoefficientMean, drainCoefficientStandardDeviation); + yield return new LogNormalHydraRingVariable(67, HydraRingDeviationType.Standard, areaFlowAperturesMean, areaFlowAperturesStandardDeviation); + yield return new NormalHydraRingVariable(93, HydraRingDeviationType.Standard, insideWaterLevelMean, insideWaterLevelStandardDeviation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureLowSillCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureLowSillCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureLowSillCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,159 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a low sill based structures closure calculation via Hydra-Ring. + /// + public class StructuresClosureLowSillCalculationInput : StructuresClosureCalculationInput + { + private readonly double thresholdHeightOpenWeirMean; + private readonly double thresholdHeightOpenWeirStandardDeviation; + private readonly double insideWaterLevelMean; + private readonly double insideWaterLevelStandardDeviation; + private readonly double widthFlowAperturesMean; + private readonly double widthFlowAperturesStandardDeviation; + private readonly double modelFactorLongThresholdMean; + private readonly double modelFactorLongThresholdStandardDeviation; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The gravitational acceleration. + /// The factor of the storm duration for an open structure. + /// The failure probability for an open structure. + /// The reparation failure probability. + /// The number of identical apertures. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The probability of an open structure before flooding. + /// The mean of the threshold height open weir. + /// The standard deviation of the threshold height open weir. + /// The mean of the inside water level. + /// The standard deviation of the inside water level. + /// The mean of the width flow apertures. + /// The standard deviation of the width flow apertures. + /// The mean of the model factor long threshold. + /// The standard deviation of the model factor long threshold. + public StructuresClosureLowSillCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double gravitationalAcceleration, + double factorStormDurationOpenStructure, + double failureProbabilityOpenStructure, + double failureProbabilityReparation, + int identicalApertures, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double probabilityOpenStructureBeforeFlooding, + double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation, + double insideWaterLevelMean, double insideWaterLevelStandardDeviation, + double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation, + double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation) + : base(hydraulicBoundaryLocationId, + sectionNormal, + forelandPoints, breakWater, + gravitationalAcceleration, + factorStormDurationOpenStructure, + failureProbabilityOpenStructure, + failureProbabilityReparation, + identicalApertures, + allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation, + modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation, + storageStructureAreaMean, storageStructureAreaVariation, + modelFactorInflowVolume, + flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation, + criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation, + failureProbabilityStructureWithErosion, + stormDurationMean, stormDurationVariation, + probabilityOpenStructureBeforeFlooding) + { + this.thresholdHeightOpenWeirMean = thresholdHeightOpenWeirMean; + this.thresholdHeightOpenWeirStandardDeviation = thresholdHeightOpenWeirStandardDeviation; + this.insideWaterLevelMean = insideWaterLevelMean; + this.insideWaterLevelStandardDeviation = insideWaterLevelStandardDeviation; + this.widthFlowAperturesMean = widthFlowAperturesMean; + this.widthFlowAperturesStandardDeviation = widthFlowAperturesStandardDeviation; + this.modelFactorLongThresholdMean = modelFactorLongThresholdMean; + this.modelFactorLongThresholdStandardDeviation = modelFactorLongThresholdStandardDeviation; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 424: + return 106; + case 425: + return 111; + default: + return null; + } + } + + private IEnumerable GetVariables() + { + yield return new NormalHydraRingVariable(65, HydraRingDeviationType.Standard, thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation); + yield return new NormalHydraRingVariable(93, HydraRingDeviationType.Standard, insideWaterLevelMean, insideWaterLevelStandardDeviation); + yield return new NormalHydraRingVariable(106, HydraRingDeviationType.Standard, widthFlowAperturesMean, widthFlowAperturesStandardDeviation); + yield return new NormalHydraRingVariable(125, HydraRingDeviationType.Standard, modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureVerticalWallCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureVerticalWallCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresClosureVerticalWallCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,169 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a vertical wall based structures closure calculation via Hydra-Ring. + /// + public class StructuresClosureVerticalWallCalculationInput : StructuresClosureCalculationInput + { + private readonly double modelFactorOvertoppingFlowMean; + private readonly double modelFactorOvertoppingFlowStandardDeviation; + private readonly double structureNormalOrientation; + private readonly double modelFactorSuperCriticalFlowMean; + private readonly double modelFactorSuperCriticalFlowStandardDeviation; + private readonly double levelCrestStructureNotClosingMean; + private readonly double levelCrestStructureNotClosingStandardDeviation; + private readonly double widthFlowAperturesMean; + private readonly double widthFlowAperturesStandardDeviation; + private readonly double deviationWaveDirection; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The gravitational acceleration. + /// The factor of the storm duration for an open structure. + /// The failure probability for an open structure. + /// The reparation failure probability. + /// The number of identical apertures. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The probability of an open structure before flooding. + /// The mean of the model factor overtopping flow. + /// The standard deviation of the model factor overtopping flow. + /// The orientation of the normal of the structure. + /// The mean of the model factor super critical flow. + /// The standard deviation of the model factor super critical flow. + /// The mean of the crest level of the structure when not closing. + /// The standard deviation of the crest level of the structure when not closing. + /// The mean of the width flow apertures. + /// The standard deviation of the width flow apertures. + /// The deviation of the wave direction. + public StructuresClosureVerticalWallCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double gravitationalAcceleration, + double factorStormDurationOpenStructure, + double failureProbabilityOpenStructure, + double failureProbabilityReparation, + int identicalApertures, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double probabilityOpenStructureBeforeFlooding, + double modelFactorOvertoppingFlowMean, double modelFactorOvertoppingFlowStandardDeviation, + double structureNormalOrientation, + double modelFactorSuperCriticalFlowMean, double modelFactorSuperCriticalFlowStandardDeviation, + double levelCrestStructureNotClosingMean, double levelCrestStructureNotClosingStandardDeviation, + double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation, + double deviationWaveDirection) + : base(hydraulicBoundaryLocationId, + sectionNormal, + forelandPoints, breakWater, + gravitationalAcceleration, + factorStormDurationOpenStructure, + failureProbabilityOpenStructure, + failureProbabilityReparation, + identicalApertures, + allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation, + modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation, + storageStructureAreaMean, storageStructureAreaVariation, + modelFactorInflowVolume, + flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation, + criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation, + failureProbabilityStructureWithErosion, + stormDurationMean, stormDurationVariation, + probabilityOpenStructureBeforeFlooding) + { + this.modelFactorOvertoppingFlowMean = modelFactorOvertoppingFlowMean; + this.modelFactorOvertoppingFlowStandardDeviation = modelFactorOvertoppingFlowStandardDeviation; + this.structureNormalOrientation = structureNormalOrientation; + this.modelFactorSuperCriticalFlowMean = modelFactorSuperCriticalFlowMean; + this.modelFactorSuperCriticalFlowStandardDeviation = modelFactorSuperCriticalFlowStandardDeviation; + this.levelCrestStructureNotClosingMean = levelCrestStructureNotClosingMean; + this.levelCrestStructureNotClosingStandardDeviation = levelCrestStructureNotClosingStandardDeviation; + this.widthFlowAperturesMean = widthFlowAperturesMean; + this.widthFlowAperturesStandardDeviation = widthFlowAperturesStandardDeviation; + this.deviationWaveDirection = deviationWaveDirection; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 424: + return 105; + case 425: + return 109; + default: + return null; + } + } + + private IEnumerable GetVariables() + { + yield return new LogNormalHydraRingVariable(59, HydraRingDeviationType.Standard, modelFactorOvertoppingFlowMean, modelFactorOvertoppingFlowStandardDeviation); + yield return new DeterministicHydraRingVariable(61, structureNormalOrientation); + yield return new NormalHydraRingVariable(62, HydraRingDeviationType.Standard, modelFactorSuperCriticalFlowMean, modelFactorSuperCriticalFlowStandardDeviation); + yield return new NormalHydraRingVariable(72, HydraRingDeviationType.Standard, levelCrestStructureNotClosingMean, levelCrestStructureNotClosingStandardDeviation); + yield return new NormalHydraRingVariable(106, HydraRingDeviationType.Standard, widthFlowAperturesMean, widthFlowAperturesStandardDeviation); + yield return new DeterministicHydraRingVariable(107, deviationWaveDirection); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresOvertoppingCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresOvertoppingCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresOvertoppingCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,181 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a structures overtopping calculation via Hydra-Ring. + /// + public class StructuresOvertoppingCalculationInput : ExceedanceProbabilityCalculationInput + { + private readonly double gravitationalAcceleration; + private readonly double modelFactorOvertoppingFlowMean; + private readonly double modelFactorOvertoppingFlowStandardDeviation; + private readonly double levelCrestStructureMean; + private readonly double levelCrestStructureStandardDeviation; + private readonly double structureNormalOrientation; + private readonly double modelFactorSuperCriticalFlowMean; + private readonly double modelFactorSuperCriticalFlowStandardDeviation; + private readonly double allowedLevelIncreaseStorageMean; + private readonly double allowedLevelIncreaseStorageStandardDeviation; + private readonly double modelFactorStorageVolumeMean; + private readonly double modelFactorStorageVolumeStandardDeviation; + private readonly double storageStructureAreaMean; + private readonly double storageStructureAreaVariation; + private readonly double modelFactorInflowVolume; + private readonly double flowWidthAtBottomProtectionMean; + private readonly double flowWidthAtBottomProtectionStandardDeviation; + private readonly double criticalOvertoppingDischargeMean; + private readonly double criticalOvertoppingDischargeVariation; + private readonly double failureProbabilityStructureWithErosion; + private readonly double widthFlowAperturesMean; + private readonly double widthFlowAperturesStandardDeviation; + private readonly double deviationWaveDirection; + private readonly double stormDurationMean; + private readonly double stormDurationVariation; + + /// + /// Creates a new instance of the class. + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The gravitational acceleration. + /// The mean of the model factor overtopping flow. + /// The standard deviation of the model factor overtopping flow. + /// The mean of the crest level of the structure. + /// The standard deviation of the crest level of the structure. + /// The orientation of the normal of the structure. + /// The mean of the model factor super critical flow. + /// The standard deviation of the model factor super critical flow. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the width flow apertures. + /// The standard deviation of the width flow apertures. + /// The deviation of the wave direction. + /// The mean of the storm duration. + /// The variation of the storm duration. + public StructuresOvertoppingCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double gravitationalAcceleration, + double modelFactorOvertoppingFlowMean, double modelFactorOvertoppingFlowStandardDeviation, + double levelCrestStructureMean, double levelCrestStructureStandardDeviation, + double structureNormalOrientation, + double modelFactorSuperCriticalFlowMean, double modelFactorSuperCriticalFlowStandardDeviation, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation, + double deviationWaveDirection, + double stormDurationMean, double stormDurationVariation) + : base(hydraulicBoundaryLocationId) + { + Section = new HydraRingSection(1, double.NaN, sectionNormal); + ForelandsPoints = forelandPoints; + BreakWater = breakWater; + this.gravitationalAcceleration = gravitationalAcceleration; + this.modelFactorOvertoppingFlowMean = modelFactorOvertoppingFlowMean; + this.modelFactorOvertoppingFlowStandardDeviation = modelFactorOvertoppingFlowStandardDeviation; + this.levelCrestStructureMean = levelCrestStructureMean; + this.levelCrestStructureStandardDeviation = levelCrestStructureStandardDeviation; + this.structureNormalOrientation = structureNormalOrientation; + this.modelFactorSuperCriticalFlowMean = modelFactorSuperCriticalFlowMean; + this.modelFactorSuperCriticalFlowStandardDeviation = modelFactorSuperCriticalFlowStandardDeviation; + this.allowedLevelIncreaseStorageMean = allowedLevelIncreaseStorageMean; + this.allowedLevelIncreaseStorageStandardDeviation = allowedLevelIncreaseStorageStandardDeviation; + this.modelFactorStorageVolumeMean = modelFactorStorageVolumeMean; + this.modelFactorStorageVolumeStandardDeviation = modelFactorStorageVolumeStandardDeviation; + this.storageStructureAreaMean = storageStructureAreaMean; + this.storageStructureAreaVariation = storageStructureAreaVariation; + this.modelFactorInflowVolume = modelFactorInflowVolume; + this.flowWidthAtBottomProtectionMean = flowWidthAtBottomProtectionMean; + this.flowWidthAtBottomProtectionStandardDeviation = flowWidthAtBottomProtectionStandardDeviation; + this.criticalOvertoppingDischargeMean = criticalOvertoppingDischargeMean; + this.criticalOvertoppingDischargeVariation = criticalOvertoppingDischargeVariation; + this.failureProbabilityStructureWithErosion = failureProbabilityStructureWithErosion; + this.widthFlowAperturesMean = widthFlowAperturesMean; + this.widthFlowAperturesStandardDeviation = widthFlowAperturesStandardDeviation; + this.deviationWaveDirection = deviationWaveDirection; + this.stormDurationMean = stormDurationMean; + this.stormDurationVariation = stormDurationVariation; + } + + public override HydraRingFailureMechanismType FailureMechanismType { get; } = HydraRingFailureMechanismType.StructuresOvertopping; + + public override int VariableId { get; } = 60; + + public override HydraRingSection Section { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(58, gravitationalAcceleration); + yield return new LogNormalHydraRingVariable(59, HydraRingDeviationType.Standard, modelFactorOvertoppingFlowMean, modelFactorOvertoppingFlowStandardDeviation); + yield return new NormalHydraRingVariable(60, HydraRingDeviationType.Standard, levelCrestStructureMean, levelCrestStructureStandardDeviation); + yield return new DeterministicHydraRingVariable(61, structureNormalOrientation); + yield return new NormalHydraRingVariable(62, HydraRingDeviationType.Standard, modelFactorSuperCriticalFlowMean, modelFactorSuperCriticalFlowStandardDeviation); + yield return new LogNormalHydraRingVariable(94, HydraRingDeviationType.Standard, allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation); + yield return new LogNormalHydraRingVariable(95, HydraRingDeviationType.Standard, modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation); + yield return new LogNormalHydraRingVariable(96, HydraRingDeviationType.Variation, storageStructureAreaMean, storageStructureAreaVariation); + yield return new DeterministicHydraRingVariable(97, modelFactorInflowVolume); + yield return new LogNormalHydraRingVariable(103, HydraRingDeviationType.Standard, flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation); + yield return new LogNormalHydraRingVariable(104, HydraRingDeviationType.Variation, criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation); + yield return new DeterministicHydraRingVariable(105, failureProbabilityStructureWithErosion); + yield return new NormalHydraRingVariable(106, HydraRingDeviationType.Standard, widthFlowAperturesMean, widthFlowAperturesStandardDeviation); + yield return new DeterministicHydraRingVariable(107, deviationWaveDirection); + yield return new LogNormalHydraRingVariable(108, HydraRingDeviationType.Variation, stormDurationMean, stormDurationVariation); + } + } + + public override IEnumerable ForelandsPoints { get; } + + public override HydraRingBreakWater BreakWater { get; } + + public override int IterationMethodId + { + get + { + return 6; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,295 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a structures stability point calculation via Hydra-Ring. + /// + public abstract class StructuresStabilityPointCalculationInput : ExceedanceProbabilityCalculationInput + { + private readonly double volumicWeightWater; + private readonly double gravitationalAcceleration; + private readonly double levelCrestStructureMean; + private readonly double levelCrestStructureStandardDeviation; + private readonly double structureNormalOrientation; + private readonly double factorStormDurationOpenStructure; + private readonly double thresholdHeightOpenWeirMean; + private readonly double thresholdHeightOpenWeirStandardDeviation; + private readonly double insideWaterLevelFailureConstructionMean; + private readonly double insideWaterLevelFailureConstructionStandardDeviation; + private readonly double failureProbabilityRepairClosure; + private readonly double failureCollisionEnergyMean; + private readonly double failureCollisionEnergyVariation; + private readonly double modelFactorCollisionLoadMean; + private readonly double modelFactorCollisionLoadVariation; + private readonly double shipMassMean; + private readonly double shipMassVariation; + private readonly double shipVelocityMean; + private readonly double shipVelocityVariation; + private readonly int levellingCount; + private readonly double probabilityCollisionSecondaryStructure; + private readonly double flowVelocityStructureClosableMean; + private readonly double flowVelocityStructureClosableVariation; + private readonly double insideWaterLevelMean; + private readonly double insideWaterLevelStandardDeviation; + private readonly double allowedLevelIncreaseStorageMean; + private readonly double allowedLevelIncreaseStorageStandardDeviation; + private readonly double modelFactorStorageVolumeMean; + private readonly double modelFactorStorageVolumeStandardDeviation; + private readonly double storageStructureAreaMean; + private readonly double storageStructureAreaVariation; + private readonly double modelFactorInflowVolume; + private readonly double flowWidthAtBottomProtectionMean; + private readonly double flowWidthAtBottomProtectionStandardDeviation; + private readonly double criticalOvertoppingDischargeMean; + private readonly double criticalOvertoppingDischargeVariation; + private readonly double failureProbabilityStructureWithErosion; + private readonly double stormDurationMean; + private readonly double stormDurationVariation; + private readonly double modelFactorLongThresholdMean; + private readonly double modelFactorLongThresholdStandardDeviation; + private readonly double bankWidthMean; + private readonly double bankWidthStandardDeviation; + private readonly double evaluationLevel; + private readonly double modelFactorLoadEffectMean; + private readonly double modelFactorLoadEffectStandardDeviation; + private readonly double waveRatioMaxHN; + private readonly double waveRatioMaxHStandardDeviation; + private readonly double verticalDistance; + private readonly double modificationFactorWavesSlowlyVaryingPressureComponent; + private readonly double modificationFactorDynamicOrImpulsivePressureComponent; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The volumic weight of water. + /// The gravitational acceleration. + /// The mean of the crest level of the structure. + /// The standard deviation of the crest level of the structure. + /// The orientation of the normal of the structure. + /// The factor of the storm duration for an open structure. + /// The mean of the threshold height open weir. + /// The standard deviation of the threshold height open weir. + /// The mean of the inside water level at failure of construction. + /// The standard deviation of the inside water level at failure of construction. + /// The failure probability repair closure. + /// The mean of the failure collision energy. + /// The variation of the failure collision energy. + /// The mean of the model factor collision load. + /// The variation of the model factor collision load. + /// The mean of the ship mass. + /// The variation of the ship mass. + /// The mean of the ship velocity. + /// The variation of the ship velocity. + /// The levelling count. + /// The probability of collision of the secondary structure. + /// The mean of the flow velocity structure closable. + /// The variation of the flow velocity structure closable. + /// The mean of the inside water level. + /// The standard deviation of the inside water level. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The mean of the model factor long threshold. + /// The standard deviation of the model factor long threshold. + /// The mean of the bank width. + /// The standard deviation of the bank width. + /// The evaluation level. + /// The mean of the model factor load effect. + /// The standard deviation of the model factor load effect. + /// The N of the wave ratio max h. + /// The standard deviation of the wave ratio max h. + /// The vertical distance. + /// The modification factor waves slowly-varying pressure component. + /// The modification factor dynamic or impulsive pressure component. + protected StructuresStabilityPointCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double volumicWeightWater, + double gravitationalAcceleration, + double levelCrestStructureMean, double levelCrestStructureStandardDeviation, + double structureNormalOrientation, + double factorStormDurationOpenStructure, + double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation, + double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation, + double failureProbabilityRepairClosure, + double failureCollisionEnergyMean, double failureCollisionEnergyVariation, + double modelFactorCollisionLoadMean, double modelFactorCollisionLoadVariation, + double shipMassMean, double shipMassVariation, + double shipVelocityMean, double shipVelocityVariation, + int levellingCount, + double probabilityCollisionSecondaryStructure, + double flowVelocityStructureClosableMean, double flowVelocityStructureClosableVariation, + double insideWaterLevelMean, double insideWaterLevelStandardDeviation, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation, + double bankWidthMean, double bankWidthStandardDeviation, + double evaluationLevel, + double modelFactorLoadEffectMean, double modelFactorLoadEffectStandardDeviation, + double waveRatioMaxHN, double waveRatioMaxHStandardDeviation, + double verticalDistance, + double modificationFactorWavesSlowlyVaryingPressureComponent, + double modificationFactorDynamicOrImpulsivePressureComponent) + : base(hydraulicBoundaryLocationId) + { + Section = new HydraRingSection(1, double.NaN, sectionNormal); + ForelandsPoints = forelandPoints; + BreakWater = breakWater; + this.volumicWeightWater = volumicWeightWater; + this.gravitationalAcceleration = gravitationalAcceleration; + this.levelCrestStructureMean = levelCrestStructureMean; + this.levelCrestStructureStandardDeviation = levelCrestStructureStandardDeviation; + this.structureNormalOrientation = structureNormalOrientation; + this.factorStormDurationOpenStructure = factorStormDurationOpenStructure; + this.thresholdHeightOpenWeirMean = thresholdHeightOpenWeirMean; + this.thresholdHeightOpenWeirStandardDeviation = thresholdHeightOpenWeirStandardDeviation; + this.insideWaterLevelFailureConstructionMean = insideWaterLevelFailureConstructionMean; + this.insideWaterLevelFailureConstructionStandardDeviation = insideWaterLevelFailureConstructionStandardDeviation; + this.failureProbabilityRepairClosure = failureProbabilityRepairClosure; + this.failureCollisionEnergyMean = failureCollisionEnergyMean; + this.failureCollisionEnergyVariation = failureCollisionEnergyVariation; + this.modelFactorCollisionLoadMean = modelFactorCollisionLoadMean; + this.modelFactorCollisionLoadVariation = modelFactorCollisionLoadVariation; + this.shipMassMean = shipMassMean; + this.shipMassVariation = shipMassVariation; + this.shipVelocityMean = shipVelocityMean; + this.shipVelocityVariation = shipVelocityVariation; + this.levellingCount = levellingCount; + this.probabilityCollisionSecondaryStructure = probabilityCollisionSecondaryStructure; + this.flowVelocityStructureClosableMean = flowVelocityStructureClosableMean; + this.flowVelocityStructureClosableVariation = flowVelocityStructureClosableVariation; + this.insideWaterLevelMean = insideWaterLevelMean; + this.insideWaterLevelStandardDeviation = insideWaterLevelStandardDeviation; + this.allowedLevelIncreaseStorageMean = allowedLevelIncreaseStorageMean; + this.allowedLevelIncreaseStorageStandardDeviation = allowedLevelIncreaseStorageStandardDeviation; + this.modelFactorStorageVolumeMean = modelFactorStorageVolumeMean; + this.modelFactorStorageVolumeStandardDeviation = modelFactorStorageVolumeStandardDeviation; + this.storageStructureAreaMean = storageStructureAreaMean; + this.storageStructureAreaVariation = storageStructureAreaVariation; + this.modelFactorInflowVolume = modelFactorInflowVolume; + this.flowWidthAtBottomProtectionMean = flowWidthAtBottomProtectionMean; + this.flowWidthAtBottomProtectionStandardDeviation = flowWidthAtBottomProtectionStandardDeviation; + this.criticalOvertoppingDischargeMean = criticalOvertoppingDischargeMean; + this.criticalOvertoppingDischargeVariation = criticalOvertoppingDischargeVariation; + this.failureProbabilityStructureWithErosion = failureProbabilityStructureWithErosion; + this.stormDurationMean = stormDurationMean; + this.stormDurationVariation = stormDurationVariation; + this.modelFactorLongThresholdMean = modelFactorLongThresholdMean; + this.modelFactorLongThresholdStandardDeviation = modelFactorLongThresholdStandardDeviation; + this.bankWidthMean = bankWidthMean; + this.bankWidthStandardDeviation = bankWidthStandardDeviation; + this.evaluationLevel = evaluationLevel; + this.modelFactorLoadEffectMean = modelFactorLoadEffectMean; + this.modelFactorLoadEffectStandardDeviation = modelFactorLoadEffectStandardDeviation; + this.waveRatioMaxHN = waveRatioMaxHN; + this.waveRatioMaxHStandardDeviation = waveRatioMaxHStandardDeviation; + this.verticalDistance = verticalDistance; + this.modificationFactorWavesSlowlyVaryingPressureComponent = modificationFactorWavesSlowlyVaryingPressureComponent; + this.modificationFactorDynamicOrImpulsivePressureComponent = modificationFactorDynamicOrImpulsivePressureComponent; + } + + public override HydraRingFailureMechanismType FailureMechanismType { get; } = HydraRingFailureMechanismType.StructuresStructuralFailure; + + public override int VariableId { get; } = 58; + + public override HydraRingSection Section { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(43, volumicWeightWater); + yield return new DeterministicHydraRingVariable(58, gravitationalAcceleration); + yield return new NormalHydraRingVariable(60, HydraRingDeviationType.Standard, levelCrestStructureMean, levelCrestStructureStandardDeviation); + yield return new DeterministicHydraRingVariable(61, structureNormalOrientation); + yield return new DeterministicHydraRingVariable(63, factorStormDurationOpenStructure); + yield return new NormalHydraRingVariable(65, HydraRingDeviationType.Standard, thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation); + yield return new NormalHydraRingVariable(82, HydraRingDeviationType.Standard, insideWaterLevelFailureConstructionMean, insideWaterLevelFailureConstructionStandardDeviation); + yield return new DeterministicHydraRingVariable(85, failureProbabilityRepairClosure); + yield return new LogNormalHydraRingVariable(86, HydraRingDeviationType.Variation, failureCollisionEnergyMean, failureCollisionEnergyVariation); + yield return new NormalHydraRingVariable(87, HydraRingDeviationType.Variation, modelFactorCollisionLoadMean, modelFactorCollisionLoadVariation); + yield return new NormalHydraRingVariable(88, HydraRingDeviationType.Variation, shipMassMean, shipMassVariation); + yield return new NormalHydraRingVariable(89, HydraRingDeviationType.Variation, shipVelocityMean, shipVelocityVariation); + yield return new DeterministicHydraRingVariable(90, levellingCount); + yield return new DeterministicHydraRingVariable(91, probabilityCollisionSecondaryStructure); + yield return new NormalHydraRingVariable(92, HydraRingDeviationType.Variation, flowVelocityStructureClosableMean, flowVelocityStructureClosableVariation); + yield return new NormalHydraRingVariable(93, HydraRingDeviationType.Standard, insideWaterLevelMean, insideWaterLevelStandardDeviation); + yield return new LogNormalHydraRingVariable(94, HydraRingDeviationType.Standard, allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation); + yield return new LogNormalHydraRingVariable(95, HydraRingDeviationType.Standard, modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation); + yield return new LogNormalHydraRingVariable(96, HydraRingDeviationType.Variation, storageStructureAreaMean, storageStructureAreaVariation); + yield return new DeterministicHydraRingVariable(97, modelFactorInflowVolume); + yield return new LogNormalHydraRingVariable(103, HydraRingDeviationType.Standard, flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation); + yield return new LogNormalHydraRingVariable(104, HydraRingDeviationType.Variation, criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation); + yield return new DeterministicHydraRingVariable(105, failureProbabilityStructureWithErosion); + yield return new LogNormalHydraRingVariable(108, HydraRingDeviationType.Variation, stormDurationMean, stormDurationVariation); + yield return new NormalHydraRingVariable(125, HydraRingDeviationType.Standard, modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation); + yield return new NormalHydraRingVariable(130, HydraRingDeviationType.Standard, bankWidthMean, bankWidthStandardDeviation); + yield return new DeterministicHydraRingVariable(131, evaluationLevel); + yield return new NormalHydraRingVariable(132, HydraRingDeviationType.Standard, modelFactorLoadEffectMean, modelFactorLoadEffectStandardDeviation); + yield return new RayleighNHydraRingVariable(133, HydraRingDeviationType.Standard, waveRatioMaxHN, waveRatioMaxHStandardDeviation); + yield return new DeterministicHydraRingVariable(134, verticalDistance); + yield return new DeterministicHydraRingVariable(135, modificationFactorWavesSlowlyVaryingPressureComponent); + yield return new DeterministicHydraRingVariable(136, modificationFactorDynamicOrImpulsivePressureComponent); + } + } + + public override IEnumerable ForelandsPoints { get; } + + public override HydraRingBreakWater BreakWater { get; } + + public override int IterationMethodId + { + get + { + return 6; + } + } + + public abstract override int? GetSubMechanismModelId(int subMechanismId); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertLinearCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertLinearCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertLinearCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,230 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a linear flooded culvert based structures stability point calculation via Hydra-Ring. + /// + public class StructuresStabilityPointFloodedCulvertLinearCalculationInput : StructuresStabilityPointCalculationInput + { + private readonly double drainCoefficientMean; + private readonly double drainCoefficientStandardDeviation; + private readonly double areaFlowAperturesMean; + private readonly double areaFlowAperturesStandardDeviation; + private readonly double constructiveStrengthLinearLoadModelMean; + private readonly double constructiveStrengthLinearLoadModelVariation; + private readonly double stabilityLinearLoadModelMean; + private readonly double stabilityLinearLoadModelVariation; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The volumic weight of water. + /// The gravitational acceleration. + /// The mean of the crest level of the structure. + /// The standard deviation of the crest level of the structure. + /// The orientation of the normal of the structure. + /// The factor of the storm duration for an open structure. + /// The mean of the threshold height open weir. + /// The standard deviation of the threshold height open weir. + /// The mean of the inside water level at failure of construction. + /// The standard deviation of the inside water level at failure of construction. + /// The failure probability repair closure. + /// The mean of the failure collision energy. + /// The variation of the failure collision energy. + /// The mean of the model factor collision load. + /// The variation of the model factor collision load. + /// The mean of the ship mass. + /// The variation of the ship mass. + /// The mean of the ship velocity. + /// The variation of the ship velocity. + /// The levelling count. + /// The probability of collision of the secondary structure. + /// The mean of the flow velocity structure closable. + /// The variation of the flow velocity structure closable. + /// The mean of the inside water level. + /// The standard deviation of the inside water level. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The mean of the model factor long threshold. + /// The standard deviation of the model factor long threshold. + /// The mean of the bank width. + /// The standard deviation of the bank width. + /// The evaluation level. + /// The mean of the model factor load effect. + /// The standard deviation of the model factor load effect. + /// The N of the wave ratio max h. + /// The standard deviation of the wave ratio max h. + /// The vertical distance. + /// The modification factor waves slowly-varying pressure component. + /// The modification factor dynamic or impulsive pressure component. + /// The mean of the drain coefficient. + /// The standard deviation of the drain coefficient. + /// The mean of the area of flow apertures. + /// The standard deviation of the area of flow apertures. + /// The mean of the constructive strength linear load model. + /// The variation of the constructive strength linear load model. + /// The mean of the stability linear load model. + /// The variation of the stability linear load model. + public StructuresStabilityPointFloodedCulvertLinearCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double volumicWeightWater, + double gravitationalAcceleration, + double levelCrestStructureMean, double levelCrestStructureStandardDeviation, + double structureNormalOrientation, + double factorStormDurationOpenStructure, + double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation, + double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation, + double failureProbabilityRepairClosure, + double failureCollisionEnergyMean, double failureCollisionEnergyVariation, + double modelFactorCollisionLoadMean, double modelFactorCollisionLoadVariation, + double shipMassMean, double shipMassVariation, + double shipVelocityMean, double shipVelocityVariation, + int levellingCount, + double probabilityCollisionSecondaryStructure, + double flowVelocityStructureClosableMean, double flowVelocityStructureClosableVariation, + double insideWaterLevelMean, double insideWaterLevelStandardDeviation, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation, + double bankWidthMean, double bankWidthStandardDeviation, + double evaluationLevel, + double modelFactorLoadEffectMean, double modelFactorLoadEffectStandardDeviation, + double waveRatioMaxHN, double waveRatioMaxHStandardDeviation, + double verticalDistance, + double modificationFactorWavesSlowlyVaryingPressureComponent, + double modificationFactorDynamicOrImpulsivePressureComponent, + double drainCoefficientMean, double drainCoefficientStandardDeviation, + double areaFlowAperturesMean, double areaFlowAperturesStandardDeviation, + double constructiveStrengthLinearLoadModelMean, double constructiveStrengthLinearLoadModelVariation, + double stabilityLinearLoadModelMean, double stabilityLinearLoadModelVariation) + : base(hydraulicBoundaryLocationId, + sectionNormal, + forelandPoints, breakWater, + volumicWeightWater, + gravitationalAcceleration, + levelCrestStructureMean, levelCrestStructureStandardDeviation, + structureNormalOrientation, + factorStormDurationOpenStructure, + thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation, + insideWaterLevelFailureConstructionMean, insideWaterLevelFailureConstructionStandardDeviation, + failureProbabilityRepairClosure, + failureCollisionEnergyMean, failureCollisionEnergyVariation, + modelFactorCollisionLoadMean, modelFactorCollisionLoadVariation, + shipMassMean, shipMassVariation, + shipVelocityMean, shipVelocityVariation, + levellingCount, + probabilityCollisionSecondaryStructure, + flowVelocityStructureClosableMean, flowVelocityStructureClosableVariation, + insideWaterLevelMean, insideWaterLevelStandardDeviation, + allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation, + modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation, + storageStructureAreaMean, storageStructureAreaVariation, + modelFactorInflowVolume, + flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation, + criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation, + failureProbabilityStructureWithErosion, + stormDurationMean, stormDurationVariation, + modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation, + bankWidthMean, bankWidthStandardDeviation, + evaluationLevel, + modelFactorLoadEffectMean, modelFactorLoadEffectStandardDeviation, + waveRatioMaxHN, waveRatioMaxHStandardDeviation, + verticalDistance, + modificationFactorWavesSlowlyVaryingPressureComponent, + modificationFactorDynamicOrImpulsivePressureComponent) + { + this.drainCoefficientMean = drainCoefficientMean; + this.drainCoefficientStandardDeviation = drainCoefficientStandardDeviation; + this.areaFlowAperturesMean = areaFlowAperturesMean; + this.areaFlowAperturesStandardDeviation = areaFlowAperturesStandardDeviation; + this.constructiveStrengthLinearLoadModelMean = constructiveStrengthLinearLoadModelMean; + this.constructiveStrengthLinearLoadModelVariation = constructiveStrengthLinearLoadModelVariation; + this.stabilityLinearLoadModelMean = stabilityLinearLoadModelMean; + this.stabilityLinearLoadModelVariation = stabilityLinearLoadModelVariation; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 424: + return 107; + case 425: + return 113; + case 430: + return 114; + case 435: + return 116; + default: + return null; + } + } + + private IEnumerable GetVariables() + { + yield return new NormalHydraRingVariable(66, HydraRingDeviationType.Standard, drainCoefficientMean, drainCoefficientStandardDeviation); + yield return new LogNormalHydraRingVariable(67, HydraRingDeviationType.Standard, areaFlowAperturesMean, areaFlowAperturesStandardDeviation); + yield return new LogNormalHydraRingVariable(80, HydraRingDeviationType.Variation, constructiveStrengthLinearLoadModelMean, constructiveStrengthLinearLoadModelVariation); + yield return new LogNormalHydraRingVariable(83, HydraRingDeviationType.Variation, stabilityLinearLoadModelMean, stabilityLinearLoadModelVariation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertQuadraticCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertQuadraticCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointFloodedCulvertQuadraticCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,230 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a quadratic flooded culvert based structures stability point calculation via Hydra-Ring. + /// + public class StructuresStabilityPointFloodedCulvertQuadraticCalculationInput : StructuresStabilityPointCalculationInput + { + private readonly double drainCoefficientMean; + private readonly double drainCoefficientStandardDeviation; + private readonly double areaFlowAperturesMean; + private readonly double areaFlowAperturesStandardDeviation; + private readonly double constructiveStrengthQuadraticLoadModelMean; + private readonly double constructiveStrengthQuadraticLoadModelVariation; + private readonly double stabilityQuadraticLoadModelMean; + private readonly double stabilityQuadraticLoadModelVariation; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The volumic weight of water. + /// The gravitational acceleration. + /// The mean of the crest level of the structure. + /// The standard deviation of the crest level of the structure. + /// The orientation of the normal of the structure. + /// The factor of the storm duration for an open structure. + /// The mean of the threshold height open weir. + /// The standard deviation of the threshold height open weir. + /// The mean of the inside water level at failure of construction. + /// The standard deviation of the inside water level at failure of construction. + /// The failure probability repair closure. + /// The mean of the failure collision energy. + /// The variation of the failure collision energy. + /// The mean of the model factor collision load. + /// The variation of the model factor collision load. + /// The mean of the ship mass. + /// The variation of the ship mass. + /// The mean of the ship velocity. + /// The variation of the ship velocity. + /// The levelling count. + /// The probability of collision of the secondary structure. + /// The mean of the flow velocity structure closable. + /// The variation of the flow velocity structure closable. + /// The mean of the inside water level. + /// The standard deviation of the inside water level. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The mean of the model factor long threshold. + /// The standard deviation of the model factor long threshold. + /// The mean of the bank width. + /// The standard deviation of the bank width. + /// The evaluation level. + /// The mean of the model factor load effect. + /// The standard deviation of the model factor load effect. + /// The N of the wave ratio max h. + /// The standard deviation of the wave ratio max h. + /// The vertical distance. + /// The modification factor waves slowly-varying pressure component. + /// The modification factor dynamic or impulsive pressure component. + /// The mean of the drain coefficient. + /// The standard deviation of the drain coefficient. + /// The mean of the area of flow apertures. + /// The standard deviation of the area of flow apertures. + /// The mean of the constructive strength quadratic load model. + /// The variation of the constructive strength quadratic load model. + /// The mean of the stability quadratic load model. + /// The variation of the stability quadratic load model. + public StructuresStabilityPointFloodedCulvertQuadraticCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double volumicWeightWater, + double gravitationalAcceleration, + double levelCrestStructureMean, double levelCrestStructureStandardDeviation, + double structureNormalOrientation, + double factorStormDurationOpenStructure, + double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation, + double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation, + double failureProbabilityRepairClosure, + double failureCollisionEnergyMean, double failureCollisionEnergyVariation, + double modelFactorCollisionLoadMean, double modelFactorCollisionLoadVariation, + double shipMassMean, double shipMassVariation, + double shipVelocityMean, double shipVelocityVariation, + int levellingCount, + double probabilityCollisionSecondaryStructure, + double flowVelocityStructureClosableMean, double flowVelocityStructureClosableVariation, + double insideWaterLevelMean, double insideWaterLevelStandardDeviation, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation, + double bankWidthMean, double bankWidthStandardDeviation, + double evaluationLevel, + double modelFactorLoadEffectMean, double modelFactorLoadEffectStandardDeviation, + double waveRatioMaxHN, double waveRatioMaxHStandardDeviation, + double verticalDistance, + double modificationFactorWavesSlowlyVaryingPressureComponent, + double modificationFactorDynamicOrImpulsivePressureComponent, + double drainCoefficientMean, double drainCoefficientStandardDeviation, + double areaFlowAperturesMean, double areaFlowAperturesStandardDeviation, + double constructiveStrengthQuadraticLoadModelMean, double constructiveStrengthQuadraticLoadModelVariation, + double stabilityQuadraticLoadModelMean, double stabilityQuadraticLoadModelVariation) + : base(hydraulicBoundaryLocationId, + sectionNormal, + forelandPoints, breakWater, + volumicWeightWater, + gravitationalAcceleration, + levelCrestStructureMean, levelCrestStructureStandardDeviation, + structureNormalOrientation, + factorStormDurationOpenStructure, + thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation, + insideWaterLevelFailureConstructionMean, insideWaterLevelFailureConstructionStandardDeviation, + failureProbabilityRepairClosure, + failureCollisionEnergyMean, failureCollisionEnergyVariation, + modelFactorCollisionLoadMean, modelFactorCollisionLoadVariation, + shipMassMean, shipMassVariation, + shipVelocityMean, shipVelocityVariation, + levellingCount, + probabilityCollisionSecondaryStructure, + flowVelocityStructureClosableMean, flowVelocityStructureClosableVariation, + insideWaterLevelMean, insideWaterLevelStandardDeviation, + allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation, + modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation, + storageStructureAreaMean, storageStructureAreaVariation, + modelFactorInflowVolume, + flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation, + criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation, + failureProbabilityStructureWithErosion, + stormDurationMean, stormDurationVariation, + modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation, + bankWidthMean, bankWidthStandardDeviation, + evaluationLevel, + modelFactorLoadEffectMean, modelFactorLoadEffectStandardDeviation, + waveRatioMaxHN, waveRatioMaxHStandardDeviation, + verticalDistance, + modificationFactorWavesSlowlyVaryingPressureComponent, + modificationFactorDynamicOrImpulsivePressureComponent) + { + this.drainCoefficientMean = drainCoefficientMean; + this.drainCoefficientStandardDeviation = drainCoefficientStandardDeviation; + this.areaFlowAperturesMean = areaFlowAperturesMean; + this.areaFlowAperturesStandardDeviation = areaFlowAperturesStandardDeviation; + this.constructiveStrengthQuadraticLoadModelMean = constructiveStrengthQuadraticLoadModelMean; + this.constructiveStrengthQuadraticLoadModelVariation = constructiveStrengthQuadraticLoadModelVariation; + this.stabilityQuadraticLoadModelMean = stabilityQuadraticLoadModelMean; + this.stabilityQuadraticLoadModelVariation = stabilityQuadraticLoadModelVariation; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 424: + return 107; + case 425: + return 113; + case 430: + return 115; + case 435: + return 117; + default: + return null; + } + } + + private IEnumerable GetVariables() + { + yield return new NormalHydraRingVariable(66, HydraRingDeviationType.Standard, drainCoefficientMean, drainCoefficientStandardDeviation); + yield return new LogNormalHydraRingVariable(67, HydraRingDeviationType.Standard, areaFlowAperturesMean, areaFlowAperturesStandardDeviation); + yield return new LogNormalHydraRingVariable(81, HydraRingDeviationType.Variation, constructiveStrengthQuadraticLoadModelMean, constructiveStrengthQuadraticLoadModelVariation); + yield return new LogNormalHydraRingVariable(84, HydraRingDeviationType.Variation, stabilityQuadraticLoadModelMean, stabilityQuadraticLoadModelVariation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillLinearCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillLinearCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillLinearCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,222 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a linear low sill based structures stability point calculation via Hydra-Ring. + /// + public class StructuresStabilityPointLowSillLinearCalculationInput : StructuresStabilityPointCalculationInput + { + private readonly double constructiveStrengthLinearLoadModelMean; + private readonly double constructiveStrengthLinearLoadModelVariation; + private readonly double stabilityLinearLoadModelMean; + private readonly double stabilityLinearLoadModelVariation; + private readonly double widthFlowAperturesMean; + private readonly double widthFlowAperturesStandardDeviation; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The volumic weight of water. + /// The gravitational acceleration. + /// The mean of the crest level of the structure. + /// The standard deviation of the crest level of the structure. + /// The orientation of the normal of the structure. + /// The factor of the storm duration for an open structure. + /// The mean of the threshold height open weir. + /// The standard deviation of the threshold height open weir. + /// The mean of the inside water level at failure of construction. + /// The standard deviation of the inside water level at failure of construction. + /// The failure probability repair closure. + /// The mean of the failure collision energy. + /// The variation of the failure collision energy. + /// The mean of the model factor collision load. + /// The variation of the model factor collision load. + /// The mean of the ship mass. + /// The variation of the ship mass. + /// The mean of the ship velocity. + /// The variation of the ship velocity. + /// The levelling count. + /// The probability of collision of the secondary structure. + /// The mean of the flow velocity structure closable. + /// The variation of the flow velocity structure closable. + /// The mean of the inside water level. + /// The standard deviation of the inside water level. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The mean of the model factor long threshold. + /// The standard deviation of the model factor long threshold. + /// The mean of the bank width. + /// The standard deviation of the bank width. + /// The evaluation level. + /// The mean of the model factor load effect. + /// The standard deviation of the model factor load effect. + /// The N of the wave ratio max h. + /// The standard deviation of the wave ratio max h. + /// The vertical distance. + /// The modification factor waves slowly-varying pressure component. + /// The modification factor dynamic or impulsive pressure component. + /// The mean of the constructive strength linear load model. + /// The variation of the constructive strength linear load model. + /// The mean of the stability linear load model. + /// The variation of the stability linear load model. + /// The mean of the width flow apertures. + /// The standard deviation of the width flow apertures. + public StructuresStabilityPointLowSillLinearCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double volumicWeightWater, + double gravitationalAcceleration, + double levelCrestStructureMean, double levelCrestStructureStandardDeviation, + double structureNormalOrientation, + double factorStormDurationOpenStructure, + double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation, + double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation, + double failureProbabilityRepairClosure, + double failureCollisionEnergyMean, double failureCollisionEnergyVariation, + double modelFactorCollisionLoadMean, double modelFactorCollisionLoadVariation, + double shipMassMean, double shipMassVariation, + double shipVelocityMean, double shipVelocityVariation, + int levellingCount, + double probabilityCollisionSecondaryStructure, + double flowVelocityStructureClosableMean, double flowVelocityStructureClosableVariation, + double insideWaterLevelMean, double insideWaterLevelStandardDeviation, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation, + double bankWidthMean, double bankWidthStandardDeviation, + double evaluationLevel, + double modelFactorLoadEffectMean, double modelFactorLoadEffectStandardDeviation, + double waveRatioMaxHN, double waveRatioMaxHStandardDeviation, + double verticalDistance, + double modificationFactorWavesSlowlyVaryingPressureComponent, + double modificationFactorDynamicOrImpulsivePressureComponent, + double constructiveStrengthLinearLoadModelMean, double constructiveStrengthLinearLoadModelVariation, + double stabilityLinearLoadModelMean, double stabilityLinearLoadModelVariation, + double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation) + : base(hydraulicBoundaryLocationId, + sectionNormal, + forelandPoints, breakWater, + volumicWeightWater, + gravitationalAcceleration, + levelCrestStructureMean, levelCrestStructureStandardDeviation, + structureNormalOrientation, + factorStormDurationOpenStructure, + thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation, + insideWaterLevelFailureConstructionMean, insideWaterLevelFailureConstructionStandardDeviation, + failureProbabilityRepairClosure, + failureCollisionEnergyMean, failureCollisionEnergyVariation, + modelFactorCollisionLoadMean, modelFactorCollisionLoadVariation, + shipMassMean, shipMassVariation, + shipVelocityMean, shipVelocityVariation, + levellingCount, + probabilityCollisionSecondaryStructure, + flowVelocityStructureClosableMean, flowVelocityStructureClosableVariation, + insideWaterLevelMean, insideWaterLevelStandardDeviation, + allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation, + modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation, + storageStructureAreaMean, storageStructureAreaVariation, + modelFactorInflowVolume, + flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation, + criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation, + failureProbabilityStructureWithErosion, + stormDurationMean, stormDurationVariation, + modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation, + bankWidthMean, bankWidthStandardDeviation, + evaluationLevel, + modelFactorLoadEffectMean, modelFactorLoadEffectStandardDeviation, + waveRatioMaxHN, waveRatioMaxHStandardDeviation, + verticalDistance, + modificationFactorWavesSlowlyVaryingPressureComponent, + modificationFactorDynamicOrImpulsivePressureComponent) + { + this.constructiveStrengthLinearLoadModelMean = constructiveStrengthLinearLoadModelMean; + this.constructiveStrengthLinearLoadModelVariation = constructiveStrengthLinearLoadModelVariation; + this.stabilityLinearLoadModelMean = stabilityLinearLoadModelMean; + this.stabilityLinearLoadModelVariation = stabilityLinearLoadModelVariation; + this.widthFlowAperturesMean = widthFlowAperturesMean; + this.widthFlowAperturesStandardDeviation = widthFlowAperturesStandardDeviation; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 424: + return 106; + case 425: + return 111; + case 430: + return 114; + case 435: + return 116; + default: + return null; + } + } + + private IEnumerable GetVariables() + { + yield return new LogNormalHydraRingVariable(80, HydraRingDeviationType.Variation, constructiveStrengthLinearLoadModelMean, constructiveStrengthLinearLoadModelVariation); + yield return new LogNormalHydraRingVariable(83, HydraRingDeviationType.Variation, stabilityLinearLoadModelMean, stabilityLinearLoadModelVariation); + yield return new NormalHydraRingVariable(106, HydraRingDeviationType.Standard, widthFlowAperturesMean, widthFlowAperturesStandardDeviation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillQuadraticCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillQuadraticCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/Structures/StructuresStabilityPointLowSillQuadraticCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,222 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.Structures +{ + /// + /// Container of all data necessary for performing a quadratic low sill based structures stability point calculation via Hydra-Ring. + /// + public class StructuresStabilityPointLowSillQuadraticCalculationInput : StructuresStabilityPointCalculationInput + { + private readonly double constructiveStrengthQuadraticLoadModelMean; + private readonly double constructiveStrengthQuadraticLoadModelVariation; + private readonly double stabilityQuadraticLoadModelMean; + private readonly double stabilityQuadraticLoadModelVariation; + private readonly double widthFlowAperturesMean; + private readonly double widthFlowAperturesStandardDeviation; + + /// + /// Creates a new instance of . + /// + /// The id of the hydraulic boundary location. + /// The normal of the section. + /// The foreland points. + /// The break water. + /// The volumic weight of water. + /// The gravitational acceleration. + /// The mean of the crest level of the structure. + /// The standard deviation of the crest level of the structure. + /// The orientation of the normal of the structure. + /// The factor of the storm duration for an open structure. + /// The mean of the threshold height open weir. + /// The standard deviation of the threshold height open weir. + /// The mean of the inside water level at failure of construction. + /// The standard deviation of the inside water level at failure of construction. + /// The failure probability repair closure. + /// The mean of the failure collision energy. + /// The variation of the failure collision energy. + /// The mean of the model factor collision load. + /// The variation of the model factor collision load. + /// The mean of the ship mass. + /// The variation of the ship mass. + /// The mean of the ship velocity. + /// The variation of the ship velocity. + /// The levelling count. + /// The probability of collision of the secondary structure. + /// The mean of the flow velocity structure closable. + /// The variation of the flow velocity structure closable. + /// The mean of the inside water level. + /// The standard deviation of the inside water level. + /// The mean of the allowed level of increase for storage. + /// The standard deviation of the allowed level of increase for storage. + /// The mean of the model factor storage volume. + /// The standard deviation of the model factor storage volume. + /// The mean of the storage structure area. + /// The variation of the storage structure area. + /// The model factor inflow volume. + /// The mean of the flow width at bottom protection. + /// The standard deviation of the flow width at bottom protection. + /// The mean of the critical overtopping discharge. + /// The variation of the critical overtopping discharge. + /// The failure probability structure with erosion. + /// The mean of the storm duration. + /// The variation of the storm duration. + /// The mean of the model factor long threshold. + /// The standard deviation of the model factor long threshold. + /// The mean of the bank width. + /// The standard deviation of the bank width. + /// The evaluation level. + /// The mean of the model factor load effect. + /// The standard deviation of the model factor load effect. + /// The N of the wave ratio max h. + /// The standard deviation of the wave ratio max h. + /// The vertical distance. + /// The modification factor waves slowly-varying pressure component. + /// The modification factor dynamic or impulsive pressure component. + /// The mean of the constructive strength quadratic load model. + /// The variation of the constructive strength quadratic load model. + /// The mean of the stability quadratic load model. + /// The variation of the stability quadratic load model. + /// The mean of the width flow apertures. + /// The standard deviation of the width flow apertures. + public StructuresStabilityPointLowSillQuadraticCalculationInput(long hydraulicBoundaryLocationId, + double sectionNormal, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double volumicWeightWater, + double gravitationalAcceleration, + double levelCrestStructureMean, double levelCrestStructureStandardDeviation, + double structureNormalOrientation, + double factorStormDurationOpenStructure, + double thresholdHeightOpenWeirMean, double thresholdHeightOpenWeirStandardDeviation, + double insideWaterLevelFailureConstructionMean, double insideWaterLevelFailureConstructionStandardDeviation, + double failureProbabilityRepairClosure, + double failureCollisionEnergyMean, double failureCollisionEnergyVariation, + double modelFactorCollisionLoadMean, double modelFactorCollisionLoadVariation, + double shipMassMean, double shipMassVariation, + double shipVelocityMean, double shipVelocityVariation, + int levellingCount, + double probabilityCollisionSecondaryStructure, + double flowVelocityStructureClosableMean, double flowVelocityStructureClosableVariation, + double insideWaterLevelMean, double insideWaterLevelStandardDeviation, + double allowedLevelIncreaseStorageMean, double allowedLevelIncreaseStorageStandardDeviation, + double modelFactorStorageVolumeMean, double modelFactorStorageVolumeStandardDeviation, + double storageStructureAreaMean, double storageStructureAreaVariation, + double modelFactorInflowVolume, + double flowWidthAtBottomProtectionMean, double flowWidthAtBottomProtectionStandardDeviation, + double criticalOvertoppingDischargeMean, double criticalOvertoppingDischargeVariation, + double failureProbabilityStructureWithErosion, + double stormDurationMean, double stormDurationVariation, + double modelFactorLongThresholdMean, double modelFactorLongThresholdStandardDeviation, + double bankWidthMean, double bankWidthStandardDeviation, + double evaluationLevel, + double modelFactorLoadEffectMean, double modelFactorLoadEffectStandardDeviation, + double waveRatioMaxHN, double waveRatioMaxHStandardDeviation, + double verticalDistance, + double modificationFactorWavesSlowlyVaryingPressureComponent, + double modificationFactorDynamicOrImpulsivePressureComponent, + double constructiveStrengthQuadraticLoadModelMean, double constructiveStrengthQuadraticLoadModelVariation, + double stabilityQuadraticLoadModelMean, double stabilityQuadraticLoadModelVariation, + double widthFlowAperturesMean, double widthFlowAperturesStandardDeviation) + : base(hydraulicBoundaryLocationId, + sectionNormal, + forelandPoints, breakWater, + volumicWeightWater, + gravitationalAcceleration, + levelCrestStructureMean, levelCrestStructureStandardDeviation, + structureNormalOrientation, + factorStormDurationOpenStructure, + thresholdHeightOpenWeirMean, thresholdHeightOpenWeirStandardDeviation, + insideWaterLevelFailureConstructionMean, insideWaterLevelFailureConstructionStandardDeviation, + failureProbabilityRepairClosure, + failureCollisionEnergyMean, failureCollisionEnergyVariation, + modelFactorCollisionLoadMean, modelFactorCollisionLoadVariation, + shipMassMean, shipMassVariation, + shipVelocityMean, shipVelocityVariation, + levellingCount, + probabilityCollisionSecondaryStructure, + flowVelocityStructureClosableMean, flowVelocityStructureClosableVariation, + insideWaterLevelMean, insideWaterLevelStandardDeviation, + allowedLevelIncreaseStorageMean, allowedLevelIncreaseStorageStandardDeviation, + modelFactorStorageVolumeMean, modelFactorStorageVolumeStandardDeviation, + storageStructureAreaMean, storageStructureAreaVariation, + modelFactorInflowVolume, + flowWidthAtBottomProtectionMean, flowWidthAtBottomProtectionStandardDeviation, + criticalOvertoppingDischargeMean, criticalOvertoppingDischargeVariation, + failureProbabilityStructureWithErosion, + stormDurationMean, stormDurationVariation, + modelFactorLongThresholdMean, modelFactorLongThresholdStandardDeviation, + bankWidthMean, bankWidthStandardDeviation, + evaluationLevel, + modelFactorLoadEffectMean, modelFactorLoadEffectStandardDeviation, + waveRatioMaxHN, waveRatioMaxHStandardDeviation, + verticalDistance, + modificationFactorWavesSlowlyVaryingPressureComponent, + modificationFactorDynamicOrImpulsivePressureComponent) + { + this.constructiveStrengthQuadraticLoadModelMean = constructiveStrengthQuadraticLoadModelMean; + this.constructiveStrengthQuadraticLoadModelVariation = constructiveStrengthQuadraticLoadModelVariation; + this.stabilityQuadraticLoadModelMean = stabilityQuadraticLoadModelMean; + this.stabilityQuadraticLoadModelVariation = stabilityQuadraticLoadModelVariation; + this.widthFlowAperturesMean = widthFlowAperturesMean; + this.widthFlowAperturesStandardDeviation = widthFlowAperturesStandardDeviation; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + variables.AddRange(GetVariables()); + + return variables.OrderBy(v => v.VariableId); + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 424: + return 106; + case 425: + return 111; + case 430: + return 115; + case 435: + return 117; + default: + return null; + } + } + + private IEnumerable GetVariables() + { + yield return new LogNormalHydraRingVariable(81, HydraRingDeviationType.Variation, constructiveStrengthQuadraticLoadModelMean, constructiveStrengthQuadraticLoadModelVariation); + yield return new LogNormalHydraRingVariable(84, HydraRingDeviationType.Variation, stabilityQuadraticLoadModelMean, stabilityQuadraticLoadModelVariation); + yield return new NormalHydraRingVariable(106, HydraRingDeviationType.Standard, widthFlowAperturesMean, widthFlowAperturesStandardDeviation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,114 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Core.Common.Util; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.WaveConditions +{ + /// + /// Container of all data necessary for performing a wave conditions calculation (Q-variant) via Hydra-Ring. + /// + public abstract class WaveConditionsCalculationInput : HydraRingCalculationInput + { + private readonly double waterLevel; + private readonly double a; + private readonly double b; + + /// + /// Creates a new instance of the class. + /// + /// The id of the section. + /// The normal of the section. + /// The id of the hydraulic boundary location. + /// The norm. + /// The foreland points. + /// The break water. + /// The water level to calculate the wave conditions for. + /// The a-value. + /// The b-value. + /// As a part of the constructor, the is automatically converted into a reliability index. + protected WaveConditionsCalculationInput(int sectionId, + double sectionNormal, + long hydraulicBoundaryLocationId, + double norm, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double waterLevel, + double a, + double b) + : base(hydraulicBoundaryLocationId) + { + Section = new HydraRingSection(sectionId, double.NaN, sectionNormal); + Beta = StatisticsConverter.ProbabilityToReliability(norm); + ForelandsPoints = forelandPoints; + BreakWater = breakWater; + + this.waterLevel = waterLevel; + this.a = a; + this.b = b; + } + + public override HydraRingFailureMechanismType FailureMechanismType + { + get + { + return HydraRingFailureMechanismType.QVariant; + } + } + + public override int CalculationTypeId + { + get + { + return 8; + } + } + + public override int VariableId + { + get + { + return 114; + } + } + + public override HydraRingSection Section { get; } + + public override IEnumerable Variables + { + get + { + yield return new DeterministicHydraRingVariable(113, waterLevel); + yield return new DeterministicHydraRingVariable(114, 1.0); + yield return new DeterministicHydraRingVariable(115, a); + yield return new DeterministicHydraRingVariable(116, b); + } + } + + public override IEnumerable ForelandsPoints { get; } + + public override HydraRingBreakWater BreakWater { get; } + + public override double Beta { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCosineCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCosineCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsCosineCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,94 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.WaveConditions +{ + /// + /// Container of all data necessary for performing a cosine based wave conditions calculation (Q-variant) via Hydra-Ring. + /// + public class WaveConditionsCosineCalculationInput : WaveConditionsCalculationInput + { + private readonly double c; + + /// + /// Creates a new instance of the class. + /// + /// The id of the section. + /// The normal of the section. + /// The id of the hydraulic boundary location. + /// The norm. + /// The foreland points. + /// The break water. + /// The water level to calculate the wave conditions for. + /// The a-value. + /// The b-value. + /// The c-value. + public WaveConditionsCosineCalculationInput(int sectionId, + double sectionNormal, + long hydraulicBoundaryLocationId, + double norm, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double waterLevel, + double a, + double b, + double c) + : base(sectionId, + sectionNormal, + hydraulicBoundaryLocationId, + norm, + forelandPoints, + breakWater, + waterLevel, + a, + b) + { + this.c = c; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + + variables.Add(new DeterministicHydraRingVariable(119, c)); + + return variables; + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 5: + return 71; + default: + return null; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsTrapezoidCalculationInput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsTrapezoidCalculationInput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Input/WaveConditions/WaveConditionsTrapezoidCalculationInput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,99 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Variables; + +namespace Riskeer.HydraRing.Calculation.Data.Input.WaveConditions +{ + /// + /// Container of all data necessary for performing a trapezoid based wave conditions calculation (Q-variant) via Hydra-Ring. + /// + public class WaveConditionsTrapezoidCalculationInput : WaveConditionsCalculationInput + { + private readonly double beta1; + private readonly double beta2; + + /// + /// Creates a new instance of the class. + /// + /// The id of the section. + /// The normal of the section. + /// The id of the hydraulic boundary location. + /// The norm. + /// The foreland points. + /// The break water. + /// The water level to calculate the wave conditions for. + /// The a-value. + /// The b-value. + /// The beta1-value. + /// The beta2-value. + public WaveConditionsTrapezoidCalculationInput(int sectionId, + double sectionNormal, + long hydraulicBoundaryLocationId, + double norm, + IEnumerable forelandPoints, + HydraRingBreakWater breakWater, + double waterLevel, + double a, + double b, + double beta1, + double beta2) + : base(sectionId, + sectionNormal, + hydraulicBoundaryLocationId, + norm, + forelandPoints, + breakWater, + waterLevel, + a, + b) + { + this.beta1 = beta1; + this.beta2 = beta2; + } + + public override IEnumerable Variables + { + get + { + List variables = base.Variables.ToList(); + + variables.Add(new DeterministicHydraRingVariable(117, beta1)); + variables.Add(new DeterministicHydraRingVariable(118, beta2)); + + return variables; + } + } + + public override int? GetSubMechanismModelId(int subMechanismId) + { + switch (subMechanismId) + { + case 5: + return 70; + default: + return null; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/DunesBoundaryConditionsCalculationOutput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/DunesBoundaryConditionsCalculationOutput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/DunesBoundaryConditionsCalculationOutput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,57 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Output +{ + /// + /// Class containing the results of a Hydra-Ring dunes boundary conditions calculation. + /// + public class DunesBoundaryConditionsCalculationOutput + { + /// + /// Creates a new instance of . + /// + /// The calculated water level. + /// The calculated wave height. + /// The calculated wave period. + public DunesBoundaryConditionsCalculationOutput(double waterLevel, double waveHeight, double wavePeriod) + { + WaterLevel = waterLevel; + WaveHeight = waveHeight; + WavePeriod = wavePeriod; + } + + /// + /// Gets the calculated water level. + /// + public double WaterLevel { get; } + + /// + /// Gets the calculated wave height. + /// + public double WaveHeight { get; } + + /// + /// Gets the calculated wave period. + /// + public double WavePeriod { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/CombinationType.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/CombinationType.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/CombinationType.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,32 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// The ways two illustration points can be combined in a result. + /// + public enum CombinationType + { + Or, + And + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/FaultTreeIllustrationPoint.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/FaultTreeIllustrationPoint.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/FaultTreeIllustrationPoint.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,83 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// An illustration point which uses the results of two sub illustration points + /// to obtain a result. + /// + public class FaultTreeIllustrationPoint : IIllustrationPoint + { + /// + /// Creates a new instance of . + /// + /// The name of the fault tree illustration point + /// The combined beta values of its children. + /// The combined stochasts of its children. + /// The way in which the sub illustration points are combined. + /// Thrown when is null. + public FaultTreeIllustrationPoint(string name, + double beta, + IEnumerable stochasts, + CombinationType combinationType) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (stochasts == null) + { + throw new ArgumentNullException(nameof(stochasts)); + } + + Beta = beta; + CombinationType = combinationType; + Name = name; + Stochasts = stochasts; + } + + /// + /// Gets the name. + /// + public string Name { get; } + + /// + /// Gets the combined stochasts of its children. + /// + public IEnumerable Stochasts { get; } + + /// + /// Gets the combined beta values of its children. + /// + public double Beta { get; } + + /// + /// Gets the way in which the sub illustration points are combined to + /// obtain a result for the fault tree illustration point. + /// + public CombinationType CombinationType { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/GeneralResult.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/GeneralResult.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/GeneralResult.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,86 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// The general illustration points result. + /// + public class GeneralResult + { + /// + /// Creates a new instance of . + /// + /// The general beta value. + /// The governing wind direction. + /// The general alpha stochast values. + /// The trees of illustration points for each wind direction. + /// Thrown when , + /// , or is null. + public GeneralResult(double beta, WindDirection governingWindDirection, + IEnumerable stochasts, + Dictionary illustrationPoints) + { + if (governingWindDirection == null) + { + throw new ArgumentNullException(nameof(governingWindDirection)); + } + + if (stochasts == null) + { + throw new ArgumentNullException(nameof(stochasts)); + } + + if (illustrationPoints == null) + { + throw new ArgumentNullException(nameof(illustrationPoints)); + } + + Beta = beta; + GoverningWindDirection = governingWindDirection; + Stochasts = stochasts; + IllustrationPoints = illustrationPoints; + } + + /// + /// Gets the general beta value. + /// + public double Beta { get; } + + /// + /// Gets the governing wind direction. + /// + public WindDirection GoverningWindDirection { get; } + + /// + /// Gets the general alpha values. + /// + public IEnumerable Stochasts { get; } + + /// + /// Gets the tree of illustration points for each wind direction and closing situation. + /// + public Dictionary IllustrationPoints { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IIllustrationPoint.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IIllustrationPoint.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IIllustrationPoint.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,28 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// Placeholder interface for an illustration point. + /// + public interface IIllustrationPoint {} +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointResult.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointResult.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointResult.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,59 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// An output variable for a sub mechanism illustration point. + /// + public class IllustrationPointResult + { + /// + /// Creates a new instance of . + /// + /// The description. + /// The output of the sub mechanism illustration point. + /// Thrown when + /// is null. + public IllustrationPointResult(string description, double value) + { + if (description == null) + { + throw new ArgumentNullException(nameof(description)); + } + + Description = description; + Value = value; + } + + /// + /// Gets the description. + /// + public string Description { get; } + + /// + /// Gets the value. + /// + public double Value { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointTreeNode.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointTreeNode.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/IllustrationPointTreeNode.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,86 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using System.Linq; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// A node that is part of a tree, that has illustration point data attached to it. + /// Multiple nodes form the tree structure describing how the illustration points are + /// related. + /// + public class IllustrationPointTreeNode + { + /// + /// Creates a new node with associated data. + /// + /// The data that is attached to this node. + /// Thrown when + /// is null. + public IllustrationPointTreeNode(IIllustrationPoint data) + { + if (data == null) + { + throw new ArgumentNullException(nameof(data)); + } + + Data = data; + Children = Enumerable.Empty(); + } + + /// + /// Gets the data attached to this node. + /// + public IIllustrationPoint Data { get; } + + /// + /// Gets the child nodes of this node. + /// + public IEnumerable Children { get; private set; } + + /// + /// Sets the children to this node. + /// + /// The children that are attached to this node. + /// Thrown when + /// does not contain 0 or 2 elements. + public void SetChildren(IllustrationPointTreeNode[] children) + { + if (children == null) + { + throw new ArgumentNullException(nameof(children)); + } + + int nrOfChildren = children.Length; + if (nrOfChildren != 0 && nrOfChildren != 2) + { + throw new ArgumentException(Resources.IllustrationPointTreeNode_SetChildren_Node_must_have_zero_or_two_child_nodes, + nameof(children)); + } + + Children = children; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/Stochast.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/Stochast.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/Stochast.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,66 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// Container of alpha value definitions read from a Hydra-Ring output database. + /// + public class Stochast + { + /// + /// Creates an instance of . + /// + /// The name. + /// The duration. + /// The alpha value. + /// Thrown when + /// is null. + public Stochast(string name, double duration, double alpha) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + Name = name; + Duration = duration; + Alpha = alpha; + } + + /// + /// Gets the name. + /// + public string Name { get; } + + /// + /// Gets the duration. + /// + public double Duration { get; } + + /// + /// Gets the alpha value. + /// + public double Alpha { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPoint.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPoint.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPoint.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,90 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// Illustration point which contains the result of applying the sub mechanism. + /// + public class SubMechanismIllustrationPoint : IIllustrationPoint + { + /// + /// Creates a new instance of . + /// + /// The name of the illustration point. + /// A collection of + /// that are associated with this illustration point. + /// A collection of + /// that are associated with this + /// illustration point. + /// The beta value of the illustration point + /// Thrown when , + /// , or is null. + public SubMechanismIllustrationPoint(string name, + IEnumerable stochasts, + IEnumerable illustrationPointResults, + double beta) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (stochasts == null) + { + throw new ArgumentNullException(nameof(stochasts)); + } + + if (illustrationPointResults == null) + { + throw new ArgumentNullException(nameof(illustrationPointResults)); + } + + Name = name; + Beta = beta; + Stochasts = stochasts; + Results = illustrationPointResults; + } + + /// + /// Gets the name of the illustration point. + /// + public string Name { get; } + + /// + /// Gets the realized stochasts that belong to this sub mechanism illustration point. + /// + public IEnumerable Stochasts { get; } + + /// + /// Gets the beta value that was realized. + /// + public double Beta { get; } + + /// + /// Gets the output variables. + /// + public IEnumerable Results { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPointStochast.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPointStochast.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/SubMechanismIllustrationPointStochast.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,52 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// Container of alpha value definitions read from a Hydra-Ring output database with + /// a realization of the described stochast. + /// + public class SubMechanismIllustrationPointStochast : Stochast + { + /// + /// Creates an new instance of . + /// + /// The name. + /// The duration. + /// The alpha. + /// The realization. + /// Thrown when + /// is null. + public SubMechanismIllustrationPointStochast(string name, double duration, double alpha, double realization) + : base(name, duration, alpha) + { + Realization = realization; + } + + /// + /// Gets the realization. + /// + public double Realization { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirection.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirection.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirection.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,90 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// A wind direction for which illustration points are determined. + /// + public class WindDirection + { + /// + /// Creates a . + /// + /// The descriptive name. + /// The angle. + public WindDirection(string name, double angle) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + Name = name; + Angle = angle; + } + + /// + /// Gets the descriptive name. + /// + public string Name { get; } + + /// + /// Gets the angle. + /// + public double Angle { get; } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (GetType() != obj.GetType()) + { + return false; + } + + return Equals((WindDirection) obj); + } + + public override int GetHashCode() + { + unchecked + { + return ((Name?.GetHashCode() ?? 0) * 397) ^ Angle.GetHashCode(); + } + } + + private bool Equals(WindDirection other) + { + return string.Equals(Name, other.Name) && Angle.Equals(other.Angle); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirectionClosingSituation.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirectionClosingSituation.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/IllustrationPoints/WindDirectionClosingSituation.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,98 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; + +namespace Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints +{ + /// + /// Combination of a wind direction and a closing situation. + /// + public class WindDirectionClosingSituation + { + /// + /// Creates a new instance of . + /// + /// The wind direction. + /// The closing situation. + /// Thrown when any parameter is null. + /// + public WindDirectionClosingSituation(WindDirection windDirection, string closingSituation) + { + if (windDirection == null) + { + throw new ArgumentNullException(nameof(windDirection)); + } + + if (closingSituation == null) + { + throw new ArgumentNullException(nameof(closingSituation)); + } + + WindDirection = windDirection; + ClosingSituation = closingSituation; + } + + /// + /// Gets the closing situation. + /// + public string ClosingSituation { get; } + + /// + /// Gets the wind direction. + /// + public WindDirection WindDirection { get; } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (GetType() != obj.GetType()) + { + return false; + } + + return Equals((WindDirectionClosingSituation) obj); + } + + public override int GetHashCode() + { + unchecked + { + return (WindDirection.GetHashCode() * 397) ^ ClosingSituation.GetHashCode(); + } + } + + private bool Equals(WindDirectionClosingSituation other) + { + return Equals(WindDirection, other.WindDirection) + && string.Equals(ClosingSituation, other.ClosingSituation); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/OvertoppingCalculationWaveHeightOutput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/OvertoppingCalculationWaveHeightOutput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/OvertoppingCalculationWaveHeightOutput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,52 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Output +{ + /// + /// Class containing the results of a Hydra-Ring calculation for the sub failure mechanism overtopping. + /// + public class OvertoppingCalculationWaveHeightOutput + { + /// + /// Creates a new instance of . + /// + /// The resulting wave height. + /// The value indicating whether the overtopping + /// sub failure mechanism was dominant over the overflow sub failure mechanism. + public OvertoppingCalculationWaveHeightOutput(double waveHeight, bool isOvertoppingDominant) + { + WaveHeight = waveHeight; + IsOvertoppingDominant = isOvertoppingDominant; + } + + /// + /// Gets the wave height that was a result of the overtopping calculation. + /// + public double WaveHeight { get; } + + /// + /// Gets whether the overtopping sub failure mechanism was dominant over + /// the overflow sub failure mechanism. + /// + public bool IsOvertoppingDominant { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/ReliabilityIndexCalculationOutput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/ReliabilityIndexCalculationOutput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/ReliabilityIndexCalculationOutput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,51 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Output +{ + /// + /// Container of all relevant output generated by Hydra-Ring calculations that + /// iterate towards a reliability index. + /// + public class ReliabilityIndexCalculationOutput + { + /// + /// Creates a new instance of the class. + /// + /// The result corresponding to . + /// The actual reliability index that was reached. + public ReliabilityIndexCalculationOutput(double result, double calculatedReliabilityIndex) + { + Result = result; + CalculatedReliabilityIndex = calculatedReliabilityIndex; + } + + /// + /// Gets the result corresponding to . + /// + public double Result { get; } + + /// + /// Gets the actual reliability index that was reached. + /// + public double CalculatedReliabilityIndex { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/WaveConditionsCalculationOutput.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/WaveConditionsCalculationOutput.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Output/WaveConditionsCalculationOutput.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,64 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Output +{ + /// + /// Class containing the results of a Hydra-Ring wave conditions calculation. + /// s + public class WaveConditionsCalculationOutput + { + /// + /// Creates a new instance of . + /// + /// The calculated wave height. + /// The calculated wave peak period. + /// The calculated wave angle with respect to the dike normal.. + /// The calculated wave direction with respect to North. + public WaveConditionsCalculationOutput(double waveHeight, double wavePeakPeriod, double waveAngle, double waveDirection) + { + WaveHeight = waveHeight; + WavePeakPeriod = wavePeakPeriod; + WaveAngle = waveAngle; + WaveDirection = waveDirection; + } + + /// + /// Gets the calculated wave height. + /// + public double WaveHeight { get; } + + /// + /// Gets the calculated wave peak period. + /// + public double WavePeakPeriod { get; } + + /// + /// Gets the calculated wave angle with respect to the dike normal. + /// + public double WaveAngle { get; } + + /// + /// Gets the calculated wave direction with respect to North. + /// + public double WaveDirection { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/DesignTablesSetting.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/DesignTablesSetting.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/DesignTablesSetting.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,52 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Settings +{ + /// + /// Container for design tables settings. + /// + public class DesignTablesSetting + { + /// + /// Creates a new instance of the class. + /// + /// The minimum value to use while iterating towards a reliability index. + /// The maximum value to use while iterating towards a reliability index. + public DesignTablesSetting(double valueMin, double valueMax) + { + ValueMin = valueMin; + ValueMax = valueMax; + } + + /// + /// Gets the minimum value to use while iterating towards a reliability index. + /// + /// Only relevant for calculations that iterate towards a reliability index. + public double ValueMin { get; } + + /// + /// Gets the maximum value to use while iterating towards a reliability index. + /// + /// Only relevant for calculations that iterate towards a reliability index. + public double ValueMax { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/NumericsSetting.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/NumericsSetting.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/NumericsSetting.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,140 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Settings +{ + /// + /// Container for numerics settings. + /// + public class NumericsSetting + { + /// + /// Creates a new instance of the class. + /// + /// The id of the calculation technique that should be used. + /// The FORM start method. + /// The maximum number of FORM iterations to perform. + /// A relaxation towards the design point for FORM. + /// One of the three convergence criteria for FORM. + /// One of the three convergence criteria for FORM. + /// One of the three convergence criteria for FORM. + /// The DIRS start method. + /// The minimum number of DIRS iterations to perform. + /// The maximum number of DIRS iterations to perform. + /// The variation coefficient to use within the DIRS iterations. + /// The lower size limit of a uniform grid deployed by NINT. + /// The upper size limit of a uniform grid deployed by NINT. + /// The number of steps between and for NINT + public NumericsSetting(int calculationTechniqueId, int formStartMethod, int formNumberOfIterations, double formRelaxationFactor, double formEpsBeta, double formEpsHoh, double formEpsZFunc, int dsStartMethod, int dsMinNumberOfIterations, int dsMaxNumberOfIterations, double dsVarCoefficient, double niUMin, double niUMax, int niNumberSteps) + { + CalculationTechniqueId = calculationTechniqueId; + FormStartMethod = formStartMethod; + FormNumberOfIterations = formNumberOfIterations; + FormRelaxationFactor = formRelaxationFactor; + FormEpsBeta = formEpsBeta; + FormEpsHoh = formEpsHoh; + FormEpsZFunc = formEpsZFunc; + DsStartMethod = dsStartMethod; + DsMinNumberOfIterations = dsMinNumberOfIterations; + DsMaxNumberOfIterations = dsMaxNumberOfIterations; + DsVarCoefficient = dsVarCoefficient; + NiUMin = niUMin; + NiUMax = niUMax; + NiNumberSteps = niNumberSteps; + } + + /// + /// Gets the id of the calculation technique that should be used. + /// + public int CalculationTechniqueId { get; } + + /// + /// Gets the FORM start method. + /// + public int FormStartMethod { get; } + + /// + /// Gets the maximum number of FORM iterations to perform. + /// + public int FormNumberOfIterations { get; } + + /// + /// Gets a relaxation towards the design point for FORM. + /// + public double FormRelaxationFactor { get; } + + /// + /// Gets one of the three convergence criteria for FORM. + /// + /// + /// + public double FormEpsBeta { get; } + + /// + /// Gets one of the three convergence criteria for FORM. + /// + /// + /// + public double FormEpsHoh { get; } + + /// + /// Gets one of the three convergence criteria for FORM. + /// + /// + /// + public double FormEpsZFunc { get; } + + /// + /// Gets the DIRS start method. + /// + public int DsStartMethod { get; } + + /// + /// Gets the minimum number of DIRS iterations to perform. + /// + public int DsMinNumberOfIterations { get; } + + /// + /// Gets the maximum number of DIRS iterations to perform. + /// + public int DsMaxNumberOfIterations { get; } + + /// + /// Gets the variation coefficient to use within the DIRS iterations. + /// + public double DsVarCoefficient { get; } + + /// + /// Gets the lower size limit of a uniform grid deployed by NINT. + /// + public double NiUMin { get; } + + /// + /// Gets the upper size limit of a uniform grid deployed by NINT. + /// + public double NiUMax { get; } + + /// + /// Gets the number of steps between and for NINT. + /// + public int NiNumberSteps { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/PreprocessorSetting.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/PreprocessorSetting.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/PreprocessorSetting.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,83 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; + +namespace Riskeer.HydraRing.Calculation.Data.Settings +{ + /// + /// Container for preprocessor settings. + /// + public class PreprocessorSetting + { + /// + /// Creates a new instance of . + /// + /// is set to false; and + /// are set to ; is set to null. + public PreprocessorSetting() + { + ValueMin = double.NaN; + ValueMax = double.NaN; + } + + /// + /// Creates a new instance of . + /// + /// The minimum value to use while running the preprocessor. + /// The maximum value to use while running the preprocessor. + /// The numerics settings to use while running the preprocessor. + /// Thrown when is null. + /// is set to true. + public PreprocessorSetting(double valueMin, double valueMax, NumericsSetting numericsSetting) + { + if (numericsSetting == null) + { + throw new ArgumentNullException(nameof(numericsSetting)); + } + + RunPreprocessor = true; + ValueMin = valueMin; + ValueMax = valueMax; + NumericsSetting = numericsSetting; + } + + /// + /// Gets a value indicating whether the preprocessor should be run. + /// + public bool RunPreprocessor { get; } + + /// + /// Gets the minimum value to use while running the preprocessor. + /// + public double ValueMin { get; } + + /// + /// Gets the maximum value to use while running the preprocessor. + /// + public double ValueMax { get; } + + /// + /// Get the numerics settings to use while running the preprocessor. + /// + public NumericsSetting NumericsSetting { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/TimeIntegrationSetting.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/TimeIntegrationSetting.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Settings/TimeIntegrationSetting.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Settings +{ + /// + /// Container for time integration settings. + /// + public class TimeIntegrationSetting + { + /// + /// Creates a new instance of . + /// + /// The time integration scheme id to use in a calculation. + public TimeIntegrationSetting(int timeIntegrationSchemeId) + { + TimeIntegrationSchemeId = timeIntegrationSchemeId; + } + + /// + /// Gets the time integration scheme id to use in a calculation. + /// + public int TimeIntegrationSchemeId { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/DeterministicHydraRingVariable.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/DeterministicHydraRingVariable.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/DeterministicHydraRingVariable.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,58 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Variables +{ + /// + /// Class for Deterministic Hydra-Ring variable related data. + /// + public class DeterministicHydraRingVariable : HydraRingVariable + { + /// + /// Creates a new instance of . + /// + /// The Hydra-Ring id corresponding to the variable that is considered. + /// The value of the variable. + public DeterministicHydraRingVariable(int variableId, double value) + : base(variableId) + { + Value = value; + } + + public override double Value { get; } + + public override HydraRingDistributionType DistributionType + { + get + { + return HydraRingDistributionType.Deterministic; + } + } + + public override HydraRingDeviationType DeviationType + { + get + { + return HydraRingDeviationType.Standard; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/HydraRingVariable.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/HydraRingVariable.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/HydraRingVariable.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,119 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Variables +{ + /// + /// Abstract base class for Hydra-Ring variable related data. + /// + public abstract class HydraRingVariable + { + /// + /// Creates a new instance of the class. + /// + /// The Hydra-Ring id corresponding to the variable that is considered. + protected HydraRingVariable(int variableId) + { + VariableId = variableId; + } + + /// + /// Gets the Hydra-Ring id corresponding to the variable that is considered. + /// + public int VariableId { get; } + + /// + /// Gets the value in case the variable is deterministic. + /// + public virtual double Value + { + get + { + return double.NaN; + } + } + + /// + /// Gets the probability distribution of the variable. + /// + public abstract HydraRingDistributionType DistributionType { get; } + + /// + /// Gets the deviation type of the variable. + /// + public abstract HydraRingDeviationType DeviationType { get; } + + /// + /// Gets the parameter 1 value in case the variable is random. + /// + public virtual double Parameter1 + { + get + { + return double.NaN; + } + } + + /// + /// Gets the parameter 2 value in case the variable is random. + /// + public virtual double Parameter2 + { + get + { + return double.NaN; + } + } + + /// + /// Gets the parameter 3 value in case the variable is random. + /// + public virtual double Parameter3 + { + get + { + return double.NaN; + } + } + + /// + /// Gets the parameter 4 value in case the variable is random. + /// + public virtual double Parameter4 + { + get + { + return double.NaN; + } + } + + /// + /// Gets the coefficient of variation in case the variable is random. + /// + public virtual double CoefficientOfVariation + { + get + { + return double.NaN; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/LogNormalHydraRingVariable.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/LogNormalHydraRingVariable.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/LogNormalHydraRingVariable.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,54 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Variables +{ + /// + /// Class for LogNormal Hydra-Ring variable related data. + /// + public class LogNormalHydraRingVariable : RandomHydraRingVariable + { + /// + /// Creates a new instance of . + /// + /// The Hydra-Ring id corresponding to the variable that is considered. + /// The deviation type of the variable. + /// The mean value of the variable. + /// The variance value of the variable. + /// The shift value of the variable. + public LogNormalHydraRingVariable(int variableId, HydraRingDeviationType deviationType, + double mean, double variance, double shift = double.NaN) + : base(variableId, deviationType, mean, variance) + { + Parameter3 = shift; + } + + public override double Parameter3 { get; } + + public override HydraRingDistributionType DistributionType + { + get + { + return HydraRingDistributionType.LogNormal; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/NormalHydraRingVariable.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/NormalHydraRingVariable.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/NormalHydraRingVariable.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,48 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Variables +{ + /// + /// Class for Normal Hydra-Ring variable related data. + /// + public class NormalHydraRingVariable : RandomHydraRingVariable + { + /// + /// Creates a new instance of . + /// + /// The Hydra-Ring id corresponding to the variable that is considered. + /// The deviation type of the variable. + /// The mean value of the variable. + /// The variance value of the variable. + public NormalHydraRingVariable(int variableId, HydraRingDeviationType deviationType, + double mean, double variance) + : base(variableId, deviationType, mean, variance) {} + + public override HydraRingDistributionType DistributionType + { + get + { + return HydraRingDistributionType.Normal; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/RandomHydraRingVariable.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/RandomHydraRingVariable.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/RandomHydraRingVariable.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,70 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Variables +{ + /// + /// Class for random Hydra-Ring variable related data. + /// + public abstract class RandomHydraRingVariable : HydraRingVariable + { + private readonly double variance; + + /// + /// Creates a new instance of . + /// + /// The Hydra-Ring id corresponding to the variable that is considered. + /// The deviation type of the variable. + /// The mean value of the variable. + /// The variance value of the variable. + protected RandomHydraRingVariable(int variableId, HydraRingDeviationType deviationType, double mean, double variance) + : base(variableId) + { + DeviationType = deviationType; + Parameter1 = mean; + this.variance = variance; + } + + public override double Parameter1 { get; } + + public override double Parameter2 + { + get + { + return DeviationType == HydraRingDeviationType.Standard + ? variance + : base.Parameter2; + } + } + + public override double CoefficientOfVariation + { + get + { + return DeviationType == HydraRingDeviationType.Variation + ? variance + : base.CoefficientOfVariation; + } + } + + public override HydraRingDeviationType DeviationType { get; } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/RayleighNHydraRingVariable.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/RayleighNHydraRingVariable.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/RayleighNHydraRingVariable.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,48 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Variables +{ + /// + /// Class for Rayleigh N Hydra-Ring variable related data. + /// + public class RayleighNHydraRingVariable : RandomHydraRingVariable + { + /// + /// Creates a new instance of . + /// + /// The Hydra-Ring id corresponding to the variable that is considered. + /// The deviation type of the variable. + /// The N value of the variable. + /// The variance value of the variable. + public RayleighNHydraRingVariable(int variableId, HydraRingDeviationType deviationType, + double n, double variance) + : base(variableId, deviationType, variance, n) {} // Note: Pass the N as "variability" and the variance as "mean" + + public override HydraRingDistributionType DistributionType + { + get + { + return HydraRingDistributionType.RayleighN; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/TruncatedNormalHydraRingVariable.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/TruncatedNormalHydraRingVariable.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Data/Variables/TruncatedNormalHydraRingVariable.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,58 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Data.Variables +{ + /// + /// Class for Truncated Normal Hydra-Ring variable related data. + /// + public class TruncatedNormalHydraRingVariable : RandomHydraRingVariable + { + /// + /// Creates a new instance of . + /// + /// The Hydra-Ring id corresponding to the variable that is considered. + /// The deviation type of the variable. + /// The mean value of the variable. + /// The variance value of the variable. + /// The lower boundary value of the variable. + /// The upper boundary value of the variable. + public TruncatedNormalHydraRingVariable(int variableId, HydraRingDeviationType deviationType, + double mean, double variance, double lowerBoundary, double upperBoundary) + : base(variableId, deviationType, mean, variance) + { + Parameter3 = lowerBoundary; + Parameter4 = upperBoundary; + } + + public override double Parameter3 { get; } + + public override double Parameter4 { get; } + + public override HydraRingDistributionType DistributionType + { + get + { + return HydraRingDistributionType.TruncatedNormal; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Exceptions/HydraRingCalculationException.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Exceptions/HydraRingCalculationException.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Exceptions/HydraRingCalculationException.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,68 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Runtime.Serialization; + +namespace Riskeer.HydraRing.Calculation.Exceptions +{ + /// + /// The exception that is thrown when a HydraRing calculation encounters an error while performing. + /// + [Serializable] + public class HydraRingCalculationException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public HydraRingCalculationException() {} + + /// + /// Initializes a new instance of the class + /// with a specified error message. + /// + /// The error message that explains the reason for the exception. + public HydraRingCalculationException(string message) : base(message) {} + + /// + /// Initializes a new instance of the class + /// with a specified error message and a reference to the inner exception that is + /// the cause of this exception. + /// + /// The error message that explains the reason for the exception. + /// The exception that is the cause of the current exception, + /// or null if no inner exception is specified. + public HydraRingCalculationException(string message, Exception inner) : base(message, inner) {} + + /// + /// Initializes a new instance of with + /// serialized data. + /// The that holds the serialized + /// object data about the exception being thrown. + /// The that contains contextual + /// information about the source or destination. + /// The parameter is + /// null. + /// The class name is null or + /// is zero (0). + protected HydraRingCalculationException(SerializationInfo info, StreamingContext context) : base(info, context) {} + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Exceptions/HydraRingFileParserException.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Exceptions/HydraRingFileParserException.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Exceptions/HydraRingFileParserException.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,69 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Runtime.Serialization; + +namespace Riskeer.HydraRing.Calculation.Exceptions +{ + /// + /// The exception that is thrown when a HydraRing file parser encounters an error while + /// parsing HydraRing output. + /// + [Serializable] + public class HydraRingFileParserException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public HydraRingFileParserException() {} + + /// + /// Initializes a new instance of the class + /// with a specified error message. + /// + /// The error message that explains the reason for the exception. + public HydraRingFileParserException(string message) : base(message) {} + + /// + /// Initializes a new instance of the class + /// with a specified error message and a reference to the inner exception that is + /// the cause of this exception. + /// + /// The error message that explains the reason for the exception. + /// The exception that is the cause of the current exception, + /// or null if no inner exception is specified. + public HydraRingFileParserException(string message, Exception inner) : base(message, inner) {} + + /// + /// Initializes a new instance of with + /// serialized data. + /// The that holds the serialized + /// object data about the exception being thrown. + /// The that contains contextual + /// information about the source or destination. + /// The parameter is + /// null. + /// The class name is null or + /// is zero (0). + protected HydraRingFileParserException(SerializationInfo info, StreamingContext context) : base(info, context) {} + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/DelftTools.Utils.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/DeltaShell.Plugins.MorphAn.Domain.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/DeltaShell.Plugins.MorphAn.TRDA.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.Geographic.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.Geometry.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.Geotechnics.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.Mathematics.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.Probabilistic.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.Standard.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WTIPiping.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WTIStability.Calculation.Wrapper.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WTIStability.Calculation.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WTIStability.IO.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WTIStability.Levenberg.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WTIStability.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WTIStructuralFailure.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/Deltares.WaternetCreator.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/DikesOvertopping.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/DllLinearizedBetaAlpha.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/DynamicLib-DaF.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HRutilitiesDll.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.Database.Test.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.Database.TestUtils.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.Database.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.DuneErosionWrapper.Tests.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.DuneErosionWrapper.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.IO.Native.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.IO.TestUtils.Native.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.MacroStability.Wrapper.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.Piping2017Wrapper.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/HydraRing.PluginShared.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/ICSharpCode.SharpZipLib.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/LicenseAGPL.txt =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/LicenseAGPL.txt (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/LicenseAGPL.txt (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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 . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/LumenWorks.Framework.IO.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/MathNet.Numerics.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/MechanismComputation.exe =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/NDepend.Helpers.FileDirectoryPath.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/PostSharp.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/ProtoBufRemote.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/StructuresStructuralFailure2017wrapper.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/System.Data.SQLite.Linq.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/System.Data.SQLite.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/config.sqlite =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/dikesOverflow.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/dllDikesOvertopping.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/dllHydraulicDunes.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/dllStructuresClosure2017.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/dllStructuresClosure2018.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/dllStructuresConstFailure2017.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/dllStructuresOvertopping2017.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/duneErosion.Native.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/exeRingComputation.exe =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/feedbackDLL.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/hydraring_computation.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/libifcoremd.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/libifcorert.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/libifportmd.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/libiomp5md.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/libiompstubs5md.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/libmmd.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/linearizedBetaAlpha.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/log4net.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/macroStability.Native.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/mfc110.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/mfc110u.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/mfcm110.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/mfcm110u.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/msvcp110.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/msvcr110.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/msvcrt.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/nunit.framework.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/piping2017.Native.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/protobuf-net.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/structuresClosure2017.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/structuresClosure2018.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/structuresOvertopping2017.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/structuresStructuralFailure2017.Native.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/svml_dispmd.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/winapi.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRing/x64/SQLite.Interop.dll =================================================================== diff -u Binary files differ Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRingDatabaseConstants.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRingDatabaseConstants.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRingDatabaseConstants.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,34 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation +{ + /// + /// Class containing database definitions that are used during a Hydra-Ring calculation. + /// + internal static class HydraRingDatabaseConstants + { + /// + /// The parameter name of the section id. + /// + internal const string SectionIdParameterName = "@sectionId"; + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRingFileConstants.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRingFileConstants.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/HydraRingFileConstants.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,54 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation +{ + /// + /// Class containing (parts of) file names that are generated during a Hydra-Ring calculation. + /// + internal static class HydraRingFileConstants + { + /// + /// The file name of the file containing the output of a calculation. + /// + internal const string DesignTablesFileName = "designTable.txt"; + + /// + /// The tail and extension of the output database which contains output for a calculation. + /// + internal const string OutputDatabaseFileNameSuffix = "-output.sqlite"; + + /// + /// The file name of the executable of Hydra-Ring. + /// + internal const string HydraRingExecutableFileName = "MechanismComputation.exe"; + + /// + /// The database which contains configuration parameters. + /// + internal const string ConfigurationDatabaseFileName = "config.sqlite"; + + /// + /// The file name which contains the error of a calculation. + /// + internal const string LastErrorFileName = "last_error.txt"; + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ConvergenceParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ConvergenceParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ConvergenceParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,76 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Parser for the convergence result of Hydra-Ring calculations. + /// + public class ConvergenceParser : IHydraRingFileParser + { + private const string convergedColumnName = "Converged"; + + private readonly string getLastResultQuery = + $"SELECT ConvOnBeta OR ConvOnValue OR ConvOnValueZeroQVariant AS {convergedColumnName} " + + "FROM IterateToGivenBetaConvergence " + + $"WHERE SectionId = {HydraRingDatabaseConstants.SectionIdParameterName} " + + "ORDER BY OuterIterationId DESC " + + "LIMIT 1"; + + /// + /// Gets the output that was parsed from the output file. + /// + public bool? Output { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + Dictionary result = HydraRingDatabaseParseHelper.ReadSingleLine(workingDirectory, + getLastResultQuery, + sectionId, + Resources.ConvergenceParser_No_convergence_found_in_output_file); + + ReadResult(result); + } + + /// + /// Reads the . + /// + /// The result from the database read. + /// Thrown when the result + /// cannot be converted to the output format. + private void ReadResult(IDictionary result) + { + try + { + Output = Convert.ToBoolean(result[convergedColumnName]); + } + catch (InvalidCastException e) + { + throw new HydraRingFileParserException(Resources.ConvergenceParser_No_convergence_found_in_output_file, e); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/DunesBoundaryConditionsCalculationParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/DunesBoundaryConditionsCalculationParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/DunesBoundaryConditionsCalculationParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,89 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Output; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Parser for dunes boundary condition results. + /// + public class DunesBoundaryConditionsCalculationParser : IHydraRingFileParser + { + private const string waveHeightColumnName = "WaveHeight"; + private const string wavePeriodColumnName = "WavePeriod"; + private const string waterLevelColumnName = "WaterLevel"; + + private readonly string query = "SELECT " + + $"max(case when OutputVariableId is 3 then d.Value end) {waveHeightColumnName}, " + + $"max(case when OutputVariableId is 5 then d.Value end) {wavePeriodColumnName}, " + + $"max(case when OutputVariableId is 23 then d.Value end) {waterLevelColumnName} " + + "FROM DesignPointResults as d " + + $"WHERE SectionId = {HydraRingDatabaseConstants.SectionIdParameterName} " + + "GROUP BY OuterIterationId " + + "ORDER BY OuterIterationId DESC " + + "LIMIT 1;"; + + /// + /// Gets the output that was parsed from the output file. + /// + public DunesBoundaryConditionsCalculationOutput Output { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + Dictionary result = HydraRingDatabaseParseHelper.ReadSingleLine( + workingDirectory, + query, + sectionId, + Resources.DunesBoundaryConditionsCalculationParser_No_dunes_hydraulic_boundaries_found_in_output_file); + + ReadResult(result); + } + + /// + /// Reads the . + /// + /// The result from the database read. + /// Thrown when the result + /// cannot be converted to the output format. + private void ReadResult(IDictionary result) + { + try + { + double waveHeight = Convert.ToDouble(result[waveHeightColumnName]); + double wavePeriod = Convert.ToDouble(result[wavePeriodColumnName]); + double waterLevel = Convert.ToDouble(result[waterLevelColumnName]); + + Output = new DunesBoundaryConditionsCalculationOutput(waterLevel, + waveHeight, + wavePeriod); + } + catch (InvalidCastException e) + { + throw new HydraRingFileParserException(Resources.DunesBoundaryConditionsCalculationParser_No_dunes_hydraulic_boundaries_found_in_output_file, e); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ExceedanceProbabilityCalculationParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ExceedanceProbabilityCalculationParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ExceedanceProbabilityCalculationParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,76 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Parser for the probability result of Hydra-Ring calculations. + /// + public class ExceedanceProbabilityCalculationParser : IHydraRingFileParser + { + private const string betaColumnName = "BetaValue"; + + private readonly string query = $"SELECT {betaColumnName} " + + "FROM DesignBeta " + + $"WHERE SectionId = {HydraRingDatabaseConstants.SectionIdParameterName} AND LevelTypeId = 4 " + + "ORDER BY OuterIterationId DESC " + + "LIMIT 1;"; + + /// + /// Gets the output that was parsed from the output file. + /// + public double? Output { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + Dictionary result = HydraRingDatabaseParseHelper.ReadSingleLine( + workingDirectory, + query, + sectionId, + Resources.ExceedanceProbabilityCalculationParser_No_beta_found_in_output_file); + + ReadResult(result); + } + + /// + /// Reads the . + /// + /// The result from the database read. + /// Thrown when the result + /// cannot be converted to the output format. + private void ReadResult(IDictionary result) + { + try + { + Output = Convert.ToDouble(result[betaColumnName]); + } + catch (InvalidCastException e) + { + throw new HydraRingFileParserException(Resources.ExceedanceProbabilityCalculationParser_No_beta_found_in_output_file, e); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/HydraRingDatabaseParseHelper.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/HydraRingDatabaseParseHelper.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/HydraRingDatabaseParseHelper.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,108 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using System.Data.SQLite; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; +using Riskeer.HydraRing.Calculation.Readers; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Helper class for methods that apply for parsing output from a Hydra-Ring database. + /// + internal static class HydraRingDatabaseParseHelper + { + /// + /// Parses the Hydra-Ring output database. + /// + /// The path to the directory which contains + /// the output of the Hydra-Ring calculation. + /// The query to perform when reading the database. + /// The section id to get the output for. + /// The exception message when there is no result. + /// A with the key of the column and the value. + /// Thrown when any input parameter is null. + /// Thrown when the reader encounters an error while + /// reading the database. + public static Dictionary ReadSingleLine(string workingDirectory, + string query, + int sectionId, + string exceptionMessage) + { + ValidateParameters(workingDirectory, query, exceptionMessage); + + try + { + using (var reader = new HydraRingDatabaseReader(workingDirectory, query, sectionId)) + { + return ReadLineFromReader(exceptionMessage, reader); + } + } + catch (SQLiteException e) + { + throw new HydraRingFileParserException(Resources.Parse_Cannot_read_result_in_output_file, e); + } + } + + /// + /// Tries to read a result from the reader and throws an exception if no row could be read. + /// + /// The message to use in the exception when reading fails. + /// The reader to read a row from. + /// A single row from the reader. + /// Thrown when no row could be read from the + /// . + private static Dictionary ReadLineFromReader(string exceptionMessage, HydraRingDatabaseReader reader) + { + Dictionary result = reader.ReadLine(); + + if (result != null) + { + return result; + } + + throw new HydraRingFileParserException(exceptionMessage); + } + + private static void ValidateParameters(string workingDirectory, + string query, + string exceptionMessage) + { + if (workingDirectory == null) + { + throw new ArgumentNullException(nameof(workingDirectory)); + } + + if (query == null) + { + throw new ArgumentNullException(nameof(query)); + } + + if (exceptionMessage == null) + { + throw new ArgumentNullException(nameof(exceptionMessage)); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IHydraRingFileParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IHydraRingFileParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IHydraRingFileParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using Riskeer.HydraRing.Calculation.Exceptions; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// This interface describes components that obtain results from the output files of a Hydra-Ring calculation. + /// + public interface IHydraRingFileParser + { + /// + /// Tries to parse output from a file in the based on a . + /// + /// The path to the directory which contains the output of the Hydra-Ring calculation. + /// The section id to get the output for. + /// Thrown when the is null. + /// Thrown when + /// + /// is zero-length, or + /// contains only whitespace, or + /// contains illegal characters, or + /// contains a colon which is not part of a volume identifier, or + /// is too long. + /// + /// Thrown when the HydraRing file parser + /// encounters an error while parsing HydraRing output. + void Parse(string workingDirectory, int sectionId); + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointQueries.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointQueries.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointQueries.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,224 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Parsers.IllustrationPoints +{ + /// + /// Collection of queries used for reading illustration points from the Hydra-Ring database. + /// + internal static class IllustrationPointQueries + { + /// + /// Selects all the closing situations. + /// + public static readonly string ClosingSituations = + $"SELECT {IllustrationPointsDatabaseConstants.ClosingSituationId}, " + + $"{IllustrationPointsDatabaseConstants.ClosingSituationName} " + + "FROM ClosingSituations;"; + + /// + /// Selects all wind direction with a flag whether the wind direction is governing. + /// + public static readonly string WindDirections = + $"SELECT WindDirections.{IllustrationPointsDatabaseConstants.WindDirectionId}, " + + $"{IllustrationPointsDatabaseConstants.WindDirectionName}, " + + $"{IllustrationPointsDatabaseConstants.WindDirectionAngle}, " + + $"WindDirections.WindDirectionId = GoverningWind.WindDirectionId AS {IllustrationPointsDatabaseConstants.IsGoverning} " + + "FROM WindDirections " + + "JOIN GoverningWind " + + $"WHERE {lastIteration}" + + $"AND {firstPeriod};"; + + /// + /// Selects all the sub mechanisms. + /// + public static readonly string SubMechanisms = + "SELECT " + + $"{IllustrationPointsDatabaseConstants.SubMechanismId}, " + + $"{IllustrationPointsDatabaseConstants.SubMechanismName} " + + "FROM SubMechanisms;"; + + /// + /// Selects all the fault trees. + /// + public static readonly string FaultTrees = + "SELECT " + + $"{IllustrationPointsDatabaseConstants.FaultTreeId}, " + + $"{IllustrationPointsDatabaseConstants.FaultTreeName} " + + "FROM FaultTrees;"; + + /// + /// Selects the alpha values for a general result. + /// + public static readonly string GeneralAlphaValues = + $"SELECT {IllustrationPointsDatabaseConstants.StochastName}, " + + $"{IllustrationPointsDatabaseConstants.AlphaValue}, " + + $"{IllustrationPointsDatabaseConstants.Duration} " + + "FROM DesignAlpha " + + "JOIN Stochasts USING(StochastId) " + + "WHERE LevelTypeId = 4 " + + $"AND {lastIteration};"; + + /// + /// Selects the beta values for a general result. + /// + public static readonly string GeneralBetaValues = + $"SELECT {IllustrationPointsDatabaseConstants.BetaValue} " + + "FROM DesignBeta " + + "WHERE LevelTypeId = 4 " + + $"AND {lastIteration};"; + + /// + /// Selects the alpha values for each fault tree illustration point. + /// + public static readonly string FaultTreeAlphaValues = + "SELECT " + + $"{IllustrationPointsDatabaseConstants.FaultTreeId}, " + + $"{IllustrationPointsDatabaseConstants.WindDirectionId}, " + + $"{IllustrationPointsDatabaseConstants.ClosingSituationId}, " + + $"{IllustrationPointsDatabaseConstants.StochastName}, " + + $"{IllustrationPointsDatabaseConstants.AlphaValue}," + + $"{IllustrationPointsDatabaseConstants.Duration} " + + "FROM FaultTrees " + + "JOIN DesignAlpha USING(FaultTreeId) " + + "JOIN Stochasts USING(StochastId) " + + "WHERE DesignAlpha.LevelTypeId = 5 " + + $"AND {lastIteration} " + + $"AND {firstPeriod};"; + + /// + /// Selects the beta values for each fault tree illustration point. + /// + public static readonly string FaultTreeBetaValues = + "SELECT " + + $"{IllustrationPointsDatabaseConstants.FaultTreeId}, " + + $"{IllustrationPointsDatabaseConstants.WindDirectionId}, " + + $"{IllustrationPointsDatabaseConstants.ClosingSituationId}, " + + $"{IllustrationPointsDatabaseConstants.BetaValue} " + + "FROM FaultTrees " + + "JOIN DesignBeta USING(FaultTreeId) " + + "WHERE DesignBeta.LevelTypeId = 5 " + + $"AND {lastIteration} " + + $"AND {firstPeriod};"; + + /// + /// Selects the alpha values for each sub mechanism illustration point. + /// + public static readonly string SubMechanismAlphaValues = + "SELECT " + + $"{IllustrationPointsDatabaseConstants.SubMechanismId}, " + + $"{IllustrationPointsDatabaseConstants.WindDirectionId}, " + + $"{IllustrationPointsDatabaseConstants.ClosingSituationId}, " + + $"{IllustrationPointsDatabaseConstants.StochastName}, " + + $"{IllustrationPointsDatabaseConstants.AlphaValue}," + + $"{IllustrationPointsDatabaseConstants.Duration}, " + + $"{IllustrationPointsDatabaseConstants.Realization} " + + "FROM SubMechanisms " + + "JOIN DesignAlpha USING(SubMechanismId) " + + "JOIN Stochasts USING(StochastId) " + + "WHERE DesignAlpha.LevelTypeId = 7 " + + $"AND {lastIteration} " + + $"AND {firstPeriod};"; + + /// + /// Selects the beta values for each sub mechanism illustration point. + /// + public static readonly string SubMechanismBetaValues = + "SELECT " + + $"{IllustrationPointsDatabaseConstants.SubMechanismId}, " + + $"{IllustrationPointsDatabaseConstants.WindDirectionId}, " + + $"{IllustrationPointsDatabaseConstants.ClosingSituationId}, " + + $"{IllustrationPointsDatabaseConstants.BetaValue} " + + "FROM SubMechanisms " + + "JOIN DesignBeta USING(SubMechanismId) " + + "WHERE DesignBeta.LevelTypeId = 7 " + + $"AND {lastIteration} " + + $"AND {firstPeriod};"; + + /// + /// Selects the output variables for each sub mechanism illustration point. + /// + public static readonly string SubMechanismIllustrationPointResults = + "SELECT " + + $"{IllustrationPointsDatabaseConstants.SubMechanismId}, " + + $"{IllustrationPointsDatabaseConstants.WindDirectionId}, " + + $"{IllustrationPointsDatabaseConstants.ClosingSituationId}, " + + $"DesignPointResults.{IllustrationPointsDatabaseConstants.IllustrationPointResultValue}, " + + $"{IllustrationPointsDatabaseConstants.IllustrationPointResultDescription} " + + "FROM SubMechanisms " + + "JOIN DesignPointResults USING(SubMechanismId) " + + "JOIN OutputVariables USING(OutputVariableId) " + + $"WHERE {lastIteration} " + + $"AND {firstPeriod};"; + + /// + /// Selects all the illustration points from the fault tree. + /// + public static readonly string RecursiveFaultTree = + "WITH RECURSIVE " + + "combineFunctions(id, combine) AS (" + + "SELECT FaultTreeId, CombinFunction " + + "FROM FaultTrees)," + + "child_of(" + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeId}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeChildId}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeType}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeCombine}" + + ") AS (" + + "SELECT FaultTreeId, Id1, Type1, combine " + + "FROM FaultTrees " + + "LEFT OUTER JOIN combineFunctions ON combineFunctions.id = Id1 " + + "UNION " + + "SELECT FaultTreeId, Id2, Type2, combine " + + "FROM FaultTrees " + + "LEFT OUTER JOIN combineFunctions ON combineFunctions.id = Id2), " + + "children(" + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeParentId}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeId}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeType}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeCombine}" + + ") AS (" + + "SELECT null, " + + "FaultTreeId, " + + "\"faulttree\", " + + "CombinFunction " + + "FROM FaultTrees " + + "WHERE FaultTreeId NOT IN " + + $"(SELECT {IllustrationPointsDatabaseConstants.RecursiveFaultTreeChildId} FROM child_of) " + + "UNION ALL " + + $"SELECT {IllustrationPointsDatabaseConstants.RecursiveFaultTreeId}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeChildId}, " + + $"child_of.{IllustrationPointsDatabaseConstants.RecursiveFaultTreeType}, " + + $"child_of.{IllustrationPointsDatabaseConstants.RecursiveFaultTreeCombine} " + + "FROM child_of " + + $"JOIN children USING({IllustrationPointsDatabaseConstants.RecursiveFaultTreeId}) " + + $"WHERE children.{IllustrationPointsDatabaseConstants.RecursiveFaultTreeType} = \"faulttree\") " + + "SELECT DISTINCT " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeParentId}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeId}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeType}, " + + $"{IllustrationPointsDatabaseConstants.RecursiveFaultTreeCombine} " + + "FROM children;"; + + private const string firstPeriod = "PeriodId = (SELECT MIN(PeriodId) FROM GoverningWind)"; + private const string lastIteration = "OuterIterationId = (SELECT MAX(OuterIterationId) FROM GoverningWind)"; + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsDatabaseConstants.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsDatabaseConstants.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsDatabaseConstants.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,59 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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. + +namespace Riskeer.HydraRing.Calculation.Parsers.IllustrationPoints +{ + /// + /// Constants which are used for assigning values in database columns to values of + /// data objects. + /// + internal static class IllustrationPointsDatabaseConstants + { + public const string FaultTreeId = "FaultTreeId"; + public const string FaultTreeName = "FaultTreeName"; + public const string SubMechanismId = "SubMechanismId"; + public const string SubMechanismName = "SubMechanismName"; + + public const string ClosingSituationId = "ClosingSituationId"; + public const string ClosingSituationName = "ClosingSituationName"; + + public const string WindDirectionId = "WindDirectionId"; + public const string WindDirectionName = "WindDirectionName"; + public const string WindDirectionAngle = "WindDirectionAngle"; + public const string IsGoverning = "IsGoverning"; + + public const string StochastName = "StochastName"; + public const string AlphaValue = "AlphaValue"; + public const string Duration = "Duration"; + public const string Realization = "X"; + + public const string BetaValue = "BetaValue"; + + public const string IllustrationPointResultValue = "Value"; + public const string IllustrationPointResultDescription = "OutputVarDescription"; + + public const string RecursiveFaultTreeId = "id"; + public const string RecursiveFaultTreeChildId = "childId"; + public const string RecursiveFaultTreeType = "type"; + public const string RecursiveFaultTreeCombine = "combine"; + public const string RecursiveFaultTreeParentId = "parentId"; + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/IllustrationPoints/IllustrationPointsParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,615 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using System.Data.SQLite; +using System.Linq; +using Riskeer.HydraRing.Calculation.Data.Output.IllustrationPoints; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; +using Riskeer.HydraRing.Calculation.Readers; + +namespace Riskeer.HydraRing.Calculation.Parsers.IllustrationPoints +{ + /// + /// Parser for transforming values for illustration points from the database into a data structure. + /// + public class IllustrationPointsParser : IHydraRingFileParser + { + private readonly Dictionary> faultTreeStochasts = new Dictionary>(); + private readonly Dictionary faultTreeBetaValues = new Dictionary(); + + private readonly Dictionary> subMechanismStochasts = new Dictionary>(); + private readonly Dictionary subMechanismBetaValues = new Dictionary(); + private readonly Dictionary> subMechanismResults = new Dictionary>(); + + private double beta = double.NaN; + private WindDirection governingWindDirection; + private IEnumerable stochasts; + + private IDictionary windDirections; + private IDictionary closingSituations; + private IDictionary subMechanisms; + private IDictionary faultTrees; + + /// + /// The result of parsing the illustration points in the Hydra-Ring database. + /// + public GeneralResult Output { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + string query = string.Concat( + IllustrationPointQueries.ClosingSituations, + IllustrationPointQueries.WindDirections, + IllustrationPointQueries.SubMechanisms, + IllustrationPointQueries.FaultTrees, + IllustrationPointQueries.GeneralAlphaValues, + IllustrationPointQueries.GeneralBetaValues, + IllustrationPointQueries.FaultTreeAlphaValues, + IllustrationPointQueries.FaultTreeBetaValues, + IllustrationPointQueries.SubMechanismAlphaValues, + IllustrationPointQueries.SubMechanismBetaValues, + IllustrationPointQueries.SubMechanismIllustrationPointResults, + IllustrationPointQueries.RecursiveFaultTree); + + try + { + using (var reader = new HydraRingDatabaseReader(workingDirectory, query, sectionId)) + { + ParseResultsFromReader(reader); + } + } + catch (SQLiteException e) + { + throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_Could_not_read_illustration_point_data, e); + } + } + + /// + /// Parses the illustration point database results. + /// + /// The database reader. + /// Thrown when parsing the results from . + private void ParseResultsFromReader(HydraRingDatabaseReader reader) + { + ParseClosingSituations(reader); + ProceedOrThrow(reader); + ParseWindDirections(reader); + ProceedOrThrow(reader); + ParseSubMechanisms(reader); + ProceedOrThrow(reader); + ParseFaultTrees(reader); + ProceedOrThrow(reader); + ParseGeneralAlphaValues(reader); + ProceedOrThrow(reader); + ParseGeneralBetaValue(reader); + ProceedOrThrow(reader); + ParseFaultTreeAlphaValues(reader); + ProceedOrThrow(reader); + ParseFaultTreeBetaValues(reader); + ProceedOrThrow(reader); + ParseSubMechanismAlphaValues(reader); + ProceedOrThrow(reader); + ParseSubMechanismBetaValues(reader); + ProceedOrThrow(reader); + ParseSubMechanismResults(reader); + ProceedOrThrow(reader); + Dictionary rootIllustrationPoints = + ParseFaultTree(reader) + ?? GetSubMechanismAsRootIllustrationPoint(); + + Output = new GeneralResult(beta, governingWindDirection, stochasts, rootIllustrationPoints); + } + + /// + /// Proceeds to the next result in the data set. + /// + /// The database reader. + /// Thrown there was no other result in the data set. + private static void ProceedOrThrow(HydraRingDatabaseReader reader) + { + if (!reader.NextResult()) + { + throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_Could_not_read_illustration_point_data); + } + } + + /// + /// Parses objects from the . + /// + /// The database reader. + /// Thrown when the read + /// or is . + private void ParseFaultTreeAlphaValues(HydraRingDatabaseReader reader) + { + foreach (Dictionary readFaultTreeAlphaValue in GetIterator(reader)) + { + int faultTreeId = Convert.ToInt32(readFaultTreeAlphaValue[IllustrationPointsDatabaseConstants.FaultTreeId]); + int windDirectionId = Convert.ToInt32(readFaultTreeAlphaValue[IllustrationPointsDatabaseConstants.WindDirectionId]); + int closingSituationid = Convert.ToInt32(readFaultTreeAlphaValue[IllustrationPointsDatabaseConstants.ClosingSituationId]); + string name = Convert.ToString(readFaultTreeAlphaValue[IllustrationPointsDatabaseConstants.StochastName]); + double duration = ConvertToDouble(readFaultTreeAlphaValue[IllustrationPointsDatabaseConstants.Duration], + IllustrationPointsDatabaseConstants.Duration); + double alpha = ConvertToDouble(readFaultTreeAlphaValue[IllustrationPointsDatabaseConstants.AlphaValue], + IllustrationPointsDatabaseConstants.AlphaValue); + + var key = new ThreeKeyIndex(windDirectionId, closingSituationid, faultTreeId); + if (!faultTreeStochasts.ContainsKey(key)) + { + faultTreeStochasts[key] = new List(); + } + + faultTreeStochasts[key].Add(new Stochast(name, duration, alpha)); + } + } + + /// + /// Parses fault tree beta values from the . + /// + /// The database reader. + /// Thrown when: + /// + /// The read is ; + /// Multiple values for beta of illustration point found. + /// + /// + private void ParseFaultTreeBetaValues(HydraRingDatabaseReader reader) + { + foreach (Dictionary readFaultTreeBetaValue in GetIterator(reader)) + { + int faultTreeId = Convert.ToInt32(readFaultTreeBetaValue[IllustrationPointsDatabaseConstants.FaultTreeId]); + int windDirectionId = Convert.ToInt32(readFaultTreeBetaValue[IllustrationPointsDatabaseConstants.WindDirectionId]); + int closingSituationid = Convert.ToInt32(readFaultTreeBetaValue[IllustrationPointsDatabaseConstants.ClosingSituationId]); + double faultTreeBeta = ConvertToDouble(readFaultTreeBetaValue[IllustrationPointsDatabaseConstants.BetaValue], + IllustrationPointsDatabaseConstants.BetaValue); + var threeKeyIndex = new ThreeKeyIndex(windDirectionId, closingSituationid, faultTreeId); + if (faultTreeBetaValues.ContainsKey(threeKeyIndex)) + { + throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_Multiple_values_for_beta_of_illustration_point_found); + } + + faultTreeBetaValues[threeKeyIndex] = faultTreeBeta; + } + } + + /// + /// Parses objects from the . + /// + /// The database reader. + /// Thrown when the read , + /// , or + /// is . + private void ParseSubMechanismAlphaValues(HydraRingDatabaseReader reader) + { + foreach (Dictionary readSubMechanismAlphaValue in GetIterator(reader)) + { + int subMechanismId = Convert.ToInt32(readSubMechanismAlphaValue[IllustrationPointsDatabaseConstants.SubMechanismId]); + int windDirectionId = Convert.ToInt32(readSubMechanismAlphaValue[IllustrationPointsDatabaseConstants.WindDirectionId]); + int closingSituationid = Convert.ToInt32(readSubMechanismAlphaValue[IllustrationPointsDatabaseConstants.ClosingSituationId]); + string name = Convert.ToString(readSubMechanismAlphaValue[IllustrationPointsDatabaseConstants.StochastName]); + double duration = ConvertToDouble(readSubMechanismAlphaValue[IllustrationPointsDatabaseConstants.Duration], + IllustrationPointsDatabaseConstants.Duration); + double alpha = ConvertToDouble(readSubMechanismAlphaValue[IllustrationPointsDatabaseConstants.AlphaValue], + IllustrationPointsDatabaseConstants.AlphaValue); + double realization = ConvertToDouble(readSubMechanismAlphaValue[IllustrationPointsDatabaseConstants.Realization], + IllustrationPointsDatabaseConstants.Realization); + + var key = new ThreeKeyIndex(windDirectionId, closingSituationid, subMechanismId); + if (!subMechanismStochasts.ContainsKey(key)) + { + subMechanismStochasts[key] = new List(); + } + + subMechanismStochasts[key].Add(new SubMechanismIllustrationPointStochast(name, duration, alpha, realization)); + } + } + + /// + /// Parses sub mechanism beta values from the . + /// + /// The database reader. + /// Thrown when: + /// + /// The read is ; + /// Multiple values for beta of illustration point found. + /// + /// + private void ParseSubMechanismBetaValues(HydraRingDatabaseReader reader) + { + foreach (Dictionary readSubMechanismBetaValue in GetIterator(reader)) + { + int subMechanismId = Convert.ToInt32(readSubMechanismBetaValue[IllustrationPointsDatabaseConstants.SubMechanismId]); + int windDirectionId = Convert.ToInt32(readSubMechanismBetaValue[IllustrationPointsDatabaseConstants.WindDirectionId]); + int closingSituationid = Convert.ToInt32(readSubMechanismBetaValue[IllustrationPointsDatabaseConstants.ClosingSituationId]); + double subMechanismBeta = ConvertToDouble(readSubMechanismBetaValue[IllustrationPointsDatabaseConstants.BetaValue], + IllustrationPointsDatabaseConstants.BetaValue); + + var threeKeyIndex = new ThreeKeyIndex(windDirectionId, closingSituationid, subMechanismId); + if (subMechanismBetaValues.ContainsKey(threeKeyIndex)) + { + throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_Multiple_values_for_beta_of_illustration_point_found); + } + + subMechanismBetaValues[threeKeyIndex] = subMechanismBeta; + } + } + + /// + /// Parses objects from the . + /// + /// The database reader. + /// Thrown when the read + /// is . + private void ParseSubMechanismResults(HydraRingDatabaseReader reader) + { + foreach (Dictionary readSubMechanismResult in GetIterator(reader)) + { + int subMechanismId = Convert.ToInt32(readSubMechanismResult[IllustrationPointsDatabaseConstants.SubMechanismId]); + int windDirectionId = Convert.ToInt32(readSubMechanismResult[IllustrationPointsDatabaseConstants.WindDirectionId]); + int closingSituationid = Convert.ToInt32(readSubMechanismResult[IllustrationPointsDatabaseConstants.ClosingSituationId]); + string description = Convert.ToString(readSubMechanismResult[IllustrationPointsDatabaseConstants.IllustrationPointResultDescription]); + double value = ConvertToDouble(readSubMechanismResult[IllustrationPointsDatabaseConstants.IllustrationPointResultValue], + IllustrationPointsDatabaseConstants.IllustrationPointResultValue); + + var key = new ThreeKeyIndex(windDirectionId, closingSituationid, subMechanismId); + if (!subMechanismResults.ContainsKey(key)) + { + subMechanismResults[key] = new List(); + } + + subMechanismResults[key].Add(new IllustrationPointResult(description, value)); + } + } + + private Dictionary ParseFaultTree(HydraRingDatabaseReader reader) + { + IEnumerable> windDirectionClosingSituations = + GetAllWindDirectionClosingSituationCombinations(); + + Dictionary[] readFaultTrees = GetIterator(reader).ToArray(); + if (readFaultTrees.Length > 0) + { + IEnumerable> results = CreateResultTuples(readFaultTrees); + + var rootIllustrationPoints = new Dictionary(); + foreach (Tuple windDirectionClosingSituation in windDirectionClosingSituations) + { + Tuple root = results.Single(r => !r.Item1.HasValue); + + IllustrationPointTreeNode illustrationPointTreeNode = BuildFaultTree(windDirectionClosingSituation, root.Item2, root.Item4, results); + + if (illustrationPointTreeNode != null) + { + rootIllustrationPoints[CreateFaultTreeKey(windDirectionClosingSituation)] = illustrationPointTreeNode; + } + } + + return rootIllustrationPoints; + } + + return null; + } + + private Dictionary GetSubMechanismAsRootIllustrationPoint() + { + var rootIllustrationPoints = new Dictionary(); + int subMechanismId = subMechanisms.First().Key; + + foreach (Tuple windDirectionClosingSituation in GetAllWindDirectionClosingSituationCombinations()) + { + IllustrationPointTreeNode illustrationPointTreeNode = BuildSubMechanism( + windDirectionClosingSituation, + subMechanismId); + + if (illustrationPointTreeNode != null) + { + rootIllustrationPoints[CreateFaultTreeKey(windDirectionClosingSituation)] = illustrationPointTreeNode; + } + } + + return rootIllustrationPoints; + } + + private static IEnumerable> CreateResultTuples(IEnumerable> readFaultTrees) + { + var results = new List>(); + + foreach (Dictionary readFaultTree in readFaultTrees) + { + object parentIdObject = readFaultTree[IllustrationPointsDatabaseConstants.RecursiveFaultTreeParentId]; + int? parentId = parentIdObject != DBNull.Value ? Convert.ToInt32(parentIdObject) : (int?) null; + int id = Convert.ToInt32(readFaultTree[IllustrationPointsDatabaseConstants.RecursiveFaultTreeId]); + string type = Convert.ToString(readFaultTree[IllustrationPointsDatabaseConstants.RecursiveFaultTreeType]); + string combine = Convert.ToString(readFaultTree[IllustrationPointsDatabaseConstants.RecursiveFaultTreeCombine]); + + results.Add(Tuple.Create( + parentId, + id, + type == "faulttree" ? typeof(FaultTreeIllustrationPoint) : typeof(SubMechanismIllustrationPoint), + combine == "and" ? CombinationType.And : CombinationType.Or)); + } + + return results; + } + + private static WindDirectionClosingSituation CreateFaultTreeKey(Tuple windDirectionClosingSituation) + { + return new WindDirectionClosingSituation(windDirectionClosingSituation.Item2, windDirectionClosingSituation.Item4); + } + + private IEnumerable> GetAllWindDirectionClosingSituationCombinations() + { + return windDirections.SelectMany(windDirection => + closingSituations.Select( + closingSituation => Tuple.Create(windDirection.Key, windDirection.Value, closingSituation.Key, closingSituation.Value))) + .ToArray(); + } + + private IllustrationPointTreeNode BuildFaultTree( + Tuple windDirectionClosingSituation, + int faultTreeId, + CombinationType combinationType, + IEnumerable> results) + { + var dataKey = new ThreeKeyIndex(windDirectionClosingSituation.Item1, windDirectionClosingSituation.Item3, faultTreeId); + var faultTreeIllustrationPointStochasts = new List(); + + if (!faultTreeBetaValues.ContainsKey(dataKey)) + { + return null; + } + + if (faultTreeStochasts.ContainsKey(dataKey)) + { + AddRange(faultTreeIllustrationPointStochasts, faultTreeStochasts[dataKey]); + } + + var illustrationPoint = new FaultTreeIllustrationPoint(faultTrees[faultTreeId], + faultTreeBetaValues[dataKey], + faultTreeIllustrationPointStochasts, + combinationType); + + var node = new IllustrationPointTreeNode(illustrationPoint); + node.SetChildren(results.Where(r => r.Item1 == faultTreeId) + .Select(child => child.Item3 == typeof(FaultTreeIllustrationPoint) + ? BuildFaultTree(windDirectionClosingSituation, child.Item2, child.Item4, results) + : BuildSubMechanism(windDirectionClosingSituation, child.Item2)).ToArray()); + return node; + } + + private IllustrationPointTreeNode BuildSubMechanism(Tuple windDirectionClosingSituation, int subMechanismId) + { + var dataKey = new ThreeKeyIndex(windDirectionClosingSituation.Item1, windDirectionClosingSituation.Item3, subMechanismId); + + var illustrationPointStochasts = new List(); + var illustrationPointResults = new List(); + + if (!subMechanismBetaValues.ContainsKey(dataKey)) + { + return null; + } + + double subMechanismIllustrationPointBeta = subMechanismBetaValues[dataKey]; + + if (subMechanismStochasts.ContainsKey(dataKey)) + { + AddRange(illustrationPointStochasts, subMechanismStochasts[dataKey]); + } + + if (subMechanismResults.ContainsKey(dataKey)) + { + AddRange(illustrationPointResults, subMechanismResults[dataKey]); + } + + string subMechanismIllustrationPointName = subMechanisms[subMechanismId]; + var illustrationPoint = new SubMechanismIllustrationPoint(subMechanismIllustrationPointName, + illustrationPointStochasts, + illustrationPointResults, + subMechanismIllustrationPointBeta); + + return new IllustrationPointTreeNode(illustrationPoint); + } + + private static void AddRange(ICollection collection, IEnumerable itemsToAdd) + { + foreach (T item in itemsToAdd) + { + collection.Add(item); + } + } + + /// + /// Parses beta values from the . + /// + /// The database reader. + /// Thrown when: + /// + /// The read is ; + /// Multiple values for beta of illustration point found. + /// + /// + private void ParseGeneralBetaValue(HydraRingDatabaseReader reader) + { + Dictionary[] betaValues = GetIterator(reader).ToArray(); + if (betaValues.Length > 1) + { + throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_Multiple_values_for_beta_of_illustration_point_found); + } + + if (betaValues.Length == 0) + { + throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_No_values_for_beta_of_illustration_point_found); + } + + beta = ConvertToDouble(betaValues[0][IllustrationPointsDatabaseConstants.BetaValue], + IllustrationPointsDatabaseConstants.BetaValue); + } + + /// + /// Converts to . + /// + /// The object to convert. + /// The identifier. + /// The converted double. + /// Thrown when + /// is . + /// + private static double ConvertToDouble(object doubleValue, string identifier) + { + if (doubleValue.Equals(DBNull.Value)) + { + throw new HydraRingFileParserException(string.Format(Resources.IllustrationPointsParser_Parse_Column_0_is_Null, identifier)); + } + + return Convert.ToDouble(doubleValue); + } + + /// + /// Parses objects from the . + /// + /// The database reader. + /// Thrown when the read + /// or is . + private void ParseGeneralAlphaValues(HydraRingDatabaseReader reader) + { + stochasts = GetIterator(reader).Select(a => + { + string name = Convert.ToString(a[IllustrationPointsDatabaseConstants.StochastName]); + double duration = ConvertToDouble(a[IllustrationPointsDatabaseConstants.Duration], IllustrationPointsDatabaseConstants.Duration); + double alpha = ConvertToDouble(a[IllustrationPointsDatabaseConstants.AlphaValue], IllustrationPointsDatabaseConstants.AlphaValue); + return new Stochast(name, duration, alpha); + }).ToArray(); + } + + private void ParseClosingSituations(HydraRingDatabaseReader reader) + { + closingSituations = GetIterator(reader).ToDictionary( + r => Convert.ToInt32(r[IllustrationPointsDatabaseConstants.ClosingSituationId]), + r => Convert.ToString(r[IllustrationPointsDatabaseConstants.ClosingSituationName])); + } + + /// + /// Parses objects from the . + /// + /// The database reader. + /// Thrown when the read + /// is or when no governing wind direction is found. + private void ParseWindDirections(HydraRingDatabaseReader reader) + { + windDirections = new Dictionary(); + + foreach (Dictionary readWindDirection in GetIterator(reader)) + { + int key = Convert.ToInt32(readWindDirection[IllustrationPointsDatabaseConstants.WindDirectionId]); + string name = Convert.ToString(readWindDirection[IllustrationPointsDatabaseConstants.WindDirectionName]); + double angle = ConvertToDouble(readWindDirection[IllustrationPointsDatabaseConstants.WindDirectionAngle], + IllustrationPointsDatabaseConstants.WindDirectionAngle); + bool isGoverning = Convert.ToBoolean(readWindDirection[IllustrationPointsDatabaseConstants.IsGoverning]); + + var windDirection = new WindDirection(name, angle); + windDirections[key] = windDirection; + + if (isGoverning) + { + governingWindDirection = windDirection; + } + } + + if (governingWindDirection == null) + { + throw new HydraRingFileParserException(Resources.IllustrationPointsParser_Parse_No_governing_wind_direction_found); + } + } + + private void ParseSubMechanisms(HydraRingDatabaseReader reader) + { + subMechanisms = GetIterator(reader).ToDictionary( + r => Convert.ToInt32(r[IllustrationPointsDatabaseConstants.SubMechanismId]), + r => Convert.ToString(r[IllustrationPointsDatabaseConstants.SubMechanismName])); + } + + private void ParseFaultTrees(HydraRingDatabaseReader reader) + { + faultTrees = GetIterator(reader).ToDictionary( + r => Convert.ToInt32(r[IllustrationPointsDatabaseConstants.FaultTreeId]), + r => Convert.ToString(r[IllustrationPointsDatabaseConstants.FaultTreeName])); + } + + private static IEnumerable> GetIterator(HydraRingDatabaseReader reader) + { + Dictionary nextLine = reader.ReadLine(); + while (nextLine != null) + { + yield return nextLine; + nextLine = reader.ReadLine(); + } + } + + private struct ThreeKeyIndex + { + private readonly int windDirectionId; + private readonly int closingSituationId; + private readonly int illustrationPointId; + + public ThreeKeyIndex(int windDirectionId, int closingSituationId, int illustrationPointId) + { + this.windDirectionId = windDirectionId; + this.closingSituationId = closingSituationId; + this.illustrationPointId = illustrationPointId; + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (GetType() != obj.GetType()) + { + return false; + } + + return Equals((ThreeKeyIndex) obj); + } + + public override int GetHashCode() + { + unchecked + { + int hashCode = windDirectionId; + hashCode = (hashCode * 397) ^ closingSituationId; + hashCode = (hashCode * 397) ^ illustrationPointId; + return hashCode; + } + } + + private bool Equals(ThreeKeyIndex other) + { + return windDirectionId == other.windDirectionId + && closingSituationId == other.closingSituationId + && illustrationPointId == other.illustrationPointId; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/LastErrorFileParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/LastErrorFileParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/LastErrorFileParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,58 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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 Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Parser for the Hydra-Ring last_err file. + /// + public class LastErrorFileParser : IHydraRingFileParser + { + /// + /// Gets the error output file content from a failed Hydra-Ring calculation. + /// + public string ErrorFileContent { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + string errorOutputFilePath = Path.Combine(workingDirectory, HydraRingFileConstants.LastErrorFileName); + + if (File.Exists(errorOutputFilePath)) + { + try + { + ErrorFileContent = File.ReadAllText(errorOutputFilePath); + } + catch + { + string message = string.Format(Resources.Parse_Cannot_read_last_error_Filename_0_from_FolderPath_1_, + HydraRingFileConstants.LastErrorFileName, + workingDirectory); + throw new HydraRingFileParserException(message); + } + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/OvertoppingCalculationWaveHeightParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/OvertoppingCalculationWaveHeightParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/OvertoppingCalculationWaveHeightParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,103 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Output; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Parser for overtopping results. + /// + public class OvertoppingCalculationWaveHeightParser : IHydraRingFileParser + { + private const string waveHeightColumn = "WaveHeight"; + private const string isOvertoppingDominantColumn = "IsOvertoppingDominant"; + + private readonly string query = + "SELECT " + + "(SELECT Value FROM GoverningWind g " + + "JOIN DesignPointResults d ON d.WindDirectionId = g.WindDirectionId AND d.OuterIterationId = g.OuterIterationId AND d.PeriodId = g.PeriodId " + + "JOIN DesignBeta db ON db.WindDirectionId = d.WindDirectionId AND db.ClosingSituationId = d.ClosingSituationId AND db.OuterIterationId = d.OuterIterationId " + + "AND db.PeriodId = d.PeriodId " + + $"WHERE OutputVariableId = 3 AND db.LevelTypeId = 7 AND db.SectionId = {HydraRingDatabaseConstants.SectionIdParameterName} " + + $"ORDER BY g.OuterIterationId DESC, d.PeriodId, db.BetaValue LIMIT 1) AS {waveHeightColumn}, " + + "(SELECT SubMechanismId = 102 " + + "FROM DesignBeta db " + + "JOIN " + + "(SELECT ClosingSituationId, d.PeriodId, d.OuterIterationId, d.WindDirectionId, d.LevelTypeId " + + "FROM GoverningWind g " + + "JOIN DesignBeta d ON d.WindDirectionId = g.WindDirectionId AND d.OuterIterationId = g.OuterIterationId And d.PeriodId = g.PeriodId " + + $"WHERE LevelTypeId = 7 AND SectionId = {HydraRingDatabaseConstants.SectionIdParameterName} " + + "AND SubmechanismId = 102 " + + "ORDER BY d.OuterIterationId DESC, d.PeriodId, BetaValue " + + "LIMIT 1) as s on s.WindDirectionId = db.WindDirectionId AND s.OuterIterationId = db.OuterIterationId AND s.PeriodId = db.PeriodId " + + "AND s.ClosingSituationId = db.ClosingSituationId AND s.LevelTypeId = db.LevelTypeId " + + "ORDER BY BetaValue " + + $"LIMIT 1) AS {isOvertoppingDominantColumn};"; + + /// + /// Gets the output that was parsed from the output file. + /// + public OvertoppingCalculationWaveHeightOutput Output { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + Dictionary result = HydraRingDatabaseParseHelper.ReadSingleLine( + workingDirectory, + query, + sectionId, + Resources.OvertoppingCalculationWaveHeightParser_No_overtopping_found_in_output_file); + + ReadResult(result); + } + + /// + /// Reads the . + /// + /// The result from the database read. + /// Thrown when the result + /// cannot be converted to the output format. + private void ReadResult(IDictionary result) + { + try + { + object waveHeightResult = result[waveHeightColumn]; + + double waveHeight = waveHeightResult.GetType() != typeof(DBNull) + ? Convert.ToDouble(waveHeightResult) + : double.NaN; + + bool isOvertoppingDominant = Convert.ToBoolean(result[isOvertoppingDominantColumn]); + + Output = new OvertoppingCalculationWaveHeightOutput(waveHeight, + isOvertoppingDominant); + } + catch (InvalidCastException e) + { + throw new HydraRingFileParserException(Resources.OvertoppingCalculationWaveHeightParser_No_overtopping_found_in_output_file, e); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ReliabilityIndexCalculationParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ReliabilityIndexCalculationParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/ReliabilityIndexCalculationParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,80 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Output; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Parser for the reliability index result of Hydra-Ring calculations. + /// + public class ReliabilityIndexCalculationParser : IHydraRingFileParser + { + private const string betaColumnName = "BetaValue"; + private const string valueColumnName = "Value"; + + private readonly string query = $"SELECT {betaColumnName}, {valueColumnName} " + + "FROM IterateToGivenBetaConvergence " + + $"WHERE SectionId = {HydraRingDatabaseConstants.SectionIdParameterName} " + + "ORDER BY OuterIterationId DESC " + + "LIMIT 1;"; + + /// + /// Gets the output that was parsed from the output file. + /// + public ReliabilityIndexCalculationOutput Output { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + Dictionary result = HydraRingDatabaseParseHelper.ReadSingleLine( + workingDirectory, + query, + sectionId, + Resources.ReliabilityIndexCalculationParser_No_reliability_found_in_output_file); + + ReadResult(result); + } + + /// + /// Reads the . + /// + /// The result from the database read. + /// Thrown when the result + /// cannot be converted to the output format. + private void ReadResult(IDictionary result) + { + try + { + Output = new ReliabilityIndexCalculationOutput( + Convert.ToDouble(result[valueColumnName]), + Convert.ToDouble(result[betaColumnName])); + } + catch (InvalidCastException e) + { + throw new HydraRingFileParserException(Resources.ReliabilityIndexCalculationParser_No_reliability_found_in_output_file, e); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/WaveConditionsCalculationParser.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/WaveConditionsCalculationParser.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Parsers/WaveConditionsCalculationParser.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,83 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data.Output; +using Riskeer.HydraRing.Calculation.Exceptions; +using Riskeer.HydraRing.Calculation.Properties; + +namespace Riskeer.HydraRing.Calculation.Parsers +{ + /// + /// Parser for wave condition results. + /// + public class WaveConditionsCalculationParser : IHydraRingFileParser + { + private const string waveHeightColumnName = "WaveHeight"; + private const string wavePeriodColumnName = "WavePeriod"; + private const string waveDirectionColumnName = "WaveDirection"; + private const string waveAngleColumnName = "WaveAngle"; + + private readonly string query = $"SELECT {waveHeightColumnName}, {wavePeriodColumnName}, {waveAngleColumnName}, {waveDirectionColumnName} " + + "FROM QVariantResults " + + $"WHERE SectionId = {HydraRingDatabaseConstants.SectionIdParameterName}"; + + /// + /// Gets the output that was parsed from the output file. + /// + public WaveConditionsCalculationOutput Output { get; private set; } + + public void Parse(string workingDirectory, int sectionId) + { + Dictionary result = HydraRingDatabaseParseHelper.ReadSingleLine( + workingDirectory, + query, + sectionId, + Resources.WaveConditionsCalculationParser_No_calculated_wave_conditions_found_in_output_file); + + ReadResult(result); + } + + /// + /// Reads the . + /// + /// The result from the database read. + /// Thrown when the result + /// cannot be converted to the output format. + private void ReadResult(IDictionary result) + { + try + { + double waveHeight = Convert.ToDouble(result[waveHeightColumnName]); + double wavePeriod = Convert.ToDouble(result[wavePeriodColumnName]); + double waveAngle = Convert.ToDouble(result[waveAngleColumnName]); + double waveDirection = Convert.ToDouble(result[waveDirectionColumnName]); + + Output = new WaveConditionsCalculationOutput(waveHeight, wavePeriod, waveAngle, waveDirection); + } + catch (InvalidCastException e) + { + throw new HydraRingFileParserException(Resources.WaveConditionsCalculationParser_No_calculated_wave_conditions_found_in_output_file, e); + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/AssemblyInfo.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/AssemblyInfo.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/AssemblyInfo.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,28 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyTitle("Riskeer.HydraRing.Calculation")] +[assembly: AssemblyProduct("Riskeer.HydraRing.Calculation")] +[assembly: InternalsVisibleTo("Ringtoets.HydraRing.Calculation.Test")] +[assembly: InternalsVisibleTo("Ringtoets.HydraRing.Calculation.TestUtil")] \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/Resources.Designer.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/Resources.Designer.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/Resources.Designer.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,202 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Riskeer.HydraRing.Calculation.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Riskeer.HydraRing.Calculation.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Er is geen resultaat voor convergentie gevonden in de Hydra-Ring uitvoerdatabase.. + /// + internal static string ConvergenceParser_No_convergence_found_in_output_file { + get { + return ResourceManager.GetString("ConvergenceParser_No_convergence_found_in_output_file", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er zijn geen berekende hydraulische belastingen voor duinen gevonden in de Hydra-Ring uitvoerdatabase.. + /// + internal static string DunesBoundaryConditionsCalculationParser_No_dunes_hydraulic_boundaries_found_in_output_file { + get { + return ResourceManager.GetString("DunesBoundaryConditionsCalculationParser_No_dunes_hydraulic_boundaries_found_in_o" + + "utput_file", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is geen resultaat voor de betrouwbaarheidsindex van de faalkans gevonden in de Hydra-Ring uitvoerdatabase.. + /// + internal static string ExceedanceProbabilityCalculationParser_No_beta_found_in_output_file { + get { + return ResourceManager.GetString("ExceedanceProbabilityCalculationParser_No_beta_found_in_output_file", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Het besturingssysteem geeft de volgende melding: + ///{0}. + /// + internal static string HydraRingCalculatorBase_Calculate_Critical_error_during_calculation_Exception_0 { + get { + return ResourceManager.GetString("HydraRingCalculatorBase_Calculate_Critical_error_during_calculation_Exception_0", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is geen waarde gevonden voor kolom '{0}' tijdens het uitlezen van de illustratiepunten in de uitvoer database.. + /// + internal static string IllustrationPointsParser_Parse_Column_0_is_Null { + get { + return ResourceManager.GetString("IllustrationPointsParser_Parse_Column_0_is_Null", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er konden geen illustratiepunten worden uitgelezen.. + /// + internal static string IllustrationPointsParser_Parse_Could_not_read_illustration_point_data { + get { + return ResourceManager.GetString("IllustrationPointsParser_Parse_Could_not_read_illustration_point_data", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Meerdere waarden voor de betrouwbaarheidsindex voor 1 illustratiepunt gevonden in de uitvoer database.. + /// + internal static string IllustrationPointsParser_Parse_Multiple_values_for_beta_of_illustration_point_found { + get { + return ResourceManager.GetString("IllustrationPointsParser_Parse_Multiple_values_for_beta_of_illustration_point_fou" + + "nd", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is geen maatgevende windrichting gevonden in de uitvoer database.. + /// + internal static string IllustrationPointsParser_Parse_No_governing_wind_direction_found { + get { + return ResourceManager.GetString("IllustrationPointsParser_Parse_No_governing_wind_direction_found", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Geen waarde voor de betrouwbaarheidsindex voor het algemene resultaat gevonden in de uitvoer database.. + /// + internal static string IllustrationPointsParser_Parse_No_values_for_beta_of_illustration_point_found { + get { + return ResourceManager.GetString("IllustrationPointsParser_Parse_No_values_for_beta_of_illustration_point_found", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Een illustratiepunt node in de foutenboom moet 0 of 2 onderliggende nodes hebben.. + /// + internal static string IllustrationPointTreeNode_SetChildren_Node_must_have_zero_or_two_child_nodes { + get { + return ResourceManager.GetString("IllustrationPointTreeNode_SetChildren_Node_must_have_zero_or_two_child_nodes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is geen resultaat voor overslag en overloop gevonden in de Hydra-Ring uitvoerdatabase.. + /// + internal static string OvertoppingCalculationWaveHeightParser_No_overtopping_found_in_output_file { + get { + return ResourceManager.GetString("OvertoppingCalculationWaveHeightParser_No_overtopping_found_in_output_file", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Kan het Hydra-Ring last_error bestand {0} niet lezen uit de map {1}.. + /// + internal static string Parse_Cannot_read_last_error_Filename_0_from_FolderPath_1_ { + get { + return ResourceManager.GetString("Parse_Cannot_read_last_error_Filename_0_from_FolderPath_1_", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase.. + /// + internal static string Parse_Cannot_read_result_in_output_file { + get { + return ResourceManager.GetString("Parse_Cannot_read_result_in_output_file", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is geen resultaat voor de betrouwbaarheidsindex van de berekende kans van voorkomen gevonden in de Hydra-Ring uitvoerdatabase.. + /// + internal static string ReliabilityIndexCalculationParser_No_reliability_found_in_output_file { + get { + return ResourceManager.GetString("ReliabilityIndexCalculationParser_No_reliability_found_in_output_file", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er zijn geen berekende golfcondities gevonden in de Hydra-Ring uitvoerdatabase.. + /// + internal static string WaveConditionsCalculationParser_No_calculated_wave_conditions_found_in_output_file { + get { + return ResourceManager.GetString("WaveConditionsCalculationParser_No_calculated_wave_conditions_found_in_output_fil" + + "e", resourceCulture); + } + } + } +} Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/Resources.resx =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/Resources.resx (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Properties/Resources.resx (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Kan het Hydra-Ring last_error bestand {0} niet lezen uit de map {1}. + + + Er kon geen resultaat gelezen worden uit de Hydra-Ring uitvoerdatabase. + + + Er is geen resultaat voor convergentie gevonden in de Hydra-Ring uitvoerdatabase. + + + Er zijn geen berekende hydraulische belastingen voor duinen gevonden in de Hydra-Ring uitvoerdatabase. + + + Er is geen resultaat voor de betrouwbaarheidsindex van de faalkans gevonden in de Hydra-Ring uitvoerdatabase. + + + Er is geen resultaat voor de betrouwbaarheidsindex van de berekende kans van voorkomen gevonden in de Hydra-Ring uitvoerdatabase. + + + Er zijn geen berekende golfcondities gevonden in de Hydra-Ring uitvoerdatabase. + + + Er is geen resultaat voor overslag en overloop gevonden in de Hydra-Ring uitvoerdatabase. + + + Er konden geen illustratiepunten worden uitgelezen. + + + Meerdere waarden voor de betrouwbaarheidsindex voor 1 illustratiepunt gevonden in de uitvoer database. + + + Geen waarde voor de betrouwbaarheidsindex voor het algemene resultaat gevonden in de uitvoer database. + + + Er is geen waarde gevonden voor kolom '{0}' tijdens het uitlezen van de illustratiepunten in de uitvoer database. + + + Het besturingssysteem geeft de volgende melding: +{0} + + + Er is geen maatgevende windrichting gevonden in de uitvoer database. + + + Een illustratiepunt node in de foutenboom moet 0 of 2 onderliggende nodes hebben. + + \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Providers/FailureMechanismDefaultsProvider.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Providers/FailureMechanismDefaultsProvider.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Providers/FailureMechanismDefaultsProvider.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,146 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Defaults; + +namespace Riskeer.HydraRing.Calculation.Providers +{ + /// + /// Provider of . + /// + public class FailureMechanismDefaultsProvider + { + private readonly IDictionary failureMechanismDefaults; + + /// + /// Creates a new instance of the class. + /// + /// + /// The default settings should not be overruled and just reflect: + /// - some supported ids within Hydra-Ring; + /// - a WTI 2017 specific configuration of Hydra-Ring. + /// + public FailureMechanismDefaultsProvider() + { + failureMechanismDefaults = new Dictionary + { + { + HydraRingFailureMechanismType.AssessmentLevel, new FailureMechanismDefaults(1, new[] + { + 1 + }, 1, 9, 1) + }, + { + HydraRingFailureMechanismType.WaveHeight, new FailureMechanismDefaults(11, new[] + { + 11 + }, 11, 9, 1) + }, + { + HydraRingFailureMechanismType.WavePeakPeriod, new FailureMechanismDefaults(11, new[] + { + 14 + }, 14, 9, 1) + }, + { + HydraRingFailureMechanismType.WaveSpectralPeriod, new FailureMechanismDefaults(11, new[] + { + 16 + }, 16, 9, 1) + }, + { + HydraRingFailureMechanismType.QVariant, new FailureMechanismDefaults(3, new[] + { + 5 + }, 6, 10, 4) + }, + { + HydraRingFailureMechanismType.DikeHeight, GetOvertoppingDefaults() + }, + { + HydraRingFailureMechanismType.DikesOvertopping, GetOvertoppingDefaults() + }, + { + HydraRingFailureMechanismType.StructuresOvertopping, new FailureMechanismDefaults(110, new[] + { + 421, + 422, + 423 + }, 4404, 9, 1) + }, + { + HydraRingFailureMechanismType.StructuresClosure, new FailureMechanismDefaults(111, new[] + { + 422, + 424, + 425, + 426, + 427 + }, 4505, 9, 1) + }, + { + HydraRingFailureMechanismType.StructuresStructuralFailure, new FailureMechanismDefaults(112, new[] + { + 422, + 424, + 425, + 430, + 431, + 432, + 433, + 434, + 435 + }, 4607, 9, 1) + }, + { + HydraRingFailureMechanismType.DunesBoundaryConditions, new FailureMechanismDefaults(1, new[] + { + 6 + }, 8, 9, 1) + }, + { + HydraRingFailureMechanismType.OvertoppingRate, GetOvertoppingDefaults() + } + }; + } + + /// + /// Returns based on the provided . + /// + /// The to obtain the for. + /// The corresponding to the provided . + public FailureMechanismDefaults GetFailureMechanismDefaults(HydraRingFailureMechanismType failureMechanismType) + { + return failureMechanismDefaults[failureMechanismType]; + } + + private static FailureMechanismDefaults GetOvertoppingDefaults() + { + return new FailureMechanismDefaults(101, new[] + { + 102, + 103 + }, 1017, 9, 1); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Providers/VariableDefaultsProvider.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Providers/VariableDefaultsProvider.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Providers/VariableDefaultsProvider.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,416 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Collections.Generic; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Defaults; + +namespace Riskeer.HydraRing.Calculation.Providers +{ + /// + /// Provider of . + /// + internal class VariableDefaultsProvider + { + private readonly IDictionary> variableDefaults; + + /// + /// Creates a new instance of the class. + /// + public VariableDefaultsProvider() + { + const int notApplicableCorrelationLength = 999999; + + variableDefaults = new Dictionary> + { + { + HydraRingFailureMechanismType.AssessmentLevel, new Dictionary + { + { + 26, new VariableDefaults(300) + } + } + }, + { + HydraRingFailureMechanismType.WaveHeight, new Dictionary + { + { + 28, new VariableDefaults(300) + } + } + }, + { + HydraRingFailureMechanismType.WavePeakPeriod, new Dictionary + { + { + 29, new VariableDefaults(300) + } + } + }, + { + HydraRingFailureMechanismType.WaveSpectralPeriod, new Dictionary + { + { + 29, new VariableDefaults(300) + } + } + }, + { + HydraRingFailureMechanismType.QVariant, new Dictionary + { + { + 113, new VariableDefaults(300) + }, + { + 114, new VariableDefaults(300) + }, + { + 115, new VariableDefaults(300) + }, + { + 116, new VariableDefaults(300) + }, + { + 117, new VariableDefaults(300) + }, + { + 118, new VariableDefaults(300) + }, + { + 119, new VariableDefaults(300) + } + } + }, + { + HydraRingFailureMechanismType.DikeHeight, GetOvertoppingDefaults() + }, + { + HydraRingFailureMechanismType.DikesOvertopping, GetOvertoppingDefaults() + }, + { + HydraRingFailureMechanismType.StructuresOvertopping, new Dictionary + { + { + 58, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 59, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 60, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 61, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 62, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 94, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 95, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 96, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 97, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 103, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 104, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 105, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 106, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 107, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 108, new VariableDefaults(notApplicableCorrelationLength) + } + } + }, + { + HydraRingFailureMechanismType.StructuresClosure, new Dictionary + { + { + 58, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 59, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 61, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 62, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 63, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 65, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 66, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 67, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 68, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 69, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 71, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 72, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 93, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 94, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 95, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 96, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 97, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 103, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 104, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 105, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 106, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 107, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 108, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 125, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 129, new VariableDefaults(notApplicableCorrelationLength) + } + } + }, + { + HydraRingFailureMechanismType.StructuresStructuralFailure, new Dictionary + { + { + 43, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 58, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 60, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 61, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 63, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 65, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 66, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 67, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 80, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 81, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 82, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 83, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 84, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 85, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 86, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 87, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 88, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 89, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 90, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 91, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 92, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 93, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 94, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 95, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 96, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 97, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 103, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 104, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 105, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 106, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 108, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 125, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 130, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 131, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 132, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 133, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 134, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 135, new VariableDefaults(notApplicableCorrelationLength) + }, + { + 136, new VariableDefaults(notApplicableCorrelationLength) + } + } + }, + { + HydraRingFailureMechanismType.DunesBoundaryConditions, new Dictionary + { + { + 26, new VariableDefaults(300) + } + } + }, + { + HydraRingFailureMechanismType.OvertoppingRate, GetOvertoppingDefaults() + } + }; + } + + /// + /// Returns based on the provided and variable id. + /// + /// The to obtain the for. + /// The variable id to obtain the for. + /// The corresponding to the provided and variable id. + public VariableDefaults GetVariableDefaults(HydraRingFailureMechanismType failureMechanismType, int variableId) + { + return variableDefaults[failureMechanismType][variableId]; + } + + private static Dictionary GetOvertoppingDefaults() + { + return new Dictionary + { + { + 1, new VariableDefaults(300) + }, + { + 8, new VariableDefaults(300) + }, + { + 10, new VariableDefaults(300) + }, + { + 11, new VariableDefaults(300) + }, + { + 12, new VariableDefaults(300) + }, + { + 17, new VariableDefaults(300) + }, + { + 120, new VariableDefaults(300) + }, + { + 123, new VariableDefaults(300) + } + }; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Readers/HydraRingDatabaseReader.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Readers/HydraRingDatabaseReader.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Readers/HydraRingDatabaseReader.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,172 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using System.Data; +using System.Data.SQLite; +using System.IO; +using Core.Common.Util; + +namespace Riskeer.HydraRing.Calculation.Readers +{ + /// + /// Class for reading the output database of a Hydra-Ring calculation. + /// + internal class HydraRingDatabaseReader : IDisposable + { + private readonly string workingDirectory; + + private SQLiteConnection connection; + private SQLiteCommand command; + private SQLiteDataReader reader; + + /// + /// Creates a new instance of . + /// + /// The path to the directory which contains the + /// output of the Hydra-Ring calculation. + /// The query to perform when reading the database. + /// The section id to get the output for. + /// Thrown when + /// or is null. + /// Thrown when + /// + /// is zero-length, or + /// contains only whitespace, or + /// contains illegal characters, or + /// contains a colon which is not part of a volume identifier, or + /// is too long. + /// + /// + /// Thrown when the reader encounters + /// an error while connecting to the database. + public HydraRingDatabaseReader(string workingDirectory, string query, int sectionId) + { + if (workingDirectory == null) + { + throw new ArgumentNullException(nameof(workingDirectory)); + } + + if (query == null) + { + throw new ArgumentNullException(nameof(query)); + } + + IOUtils.ValidateFilePath(workingDirectory); + + this.workingDirectory = workingDirectory; + + CreateConnection(sectionId); + CreateCommand(query, sectionId); + OpenConnection(); + GetReader(); + } + + /// + /// Executes the query on the database and reads the next row. + /// + /// A with the key + /// of the column and the value. Or null if no row could + /// be read from the reader. + public Dictionary ReadLine() + { + if (reader.Read()) + { + var results = new Dictionary(); + + for (var i = 0; i < reader.FieldCount; i++) + { + results.Add(reader.GetName(i), reader[i]); + } + + return results; + } + + return null; + } + + /// + /// Progresses the reader to the next result in the data set. + /// + /// true if there was another result in the data set, false + /// otherwise. + public bool NextResult() + { + return reader.NextResult(); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + reader?.Dispose(); + connection?.Dispose(); + command?.Dispose(); + } + } + + private void CreateConnection(int sectionId) + { + string databaseFile = Path.Combine(workingDirectory, $"{sectionId}{HydraRingFileConstants.OutputDatabaseFileNameSuffix}"); + + string connectionStringBuilder = new SQLiteConnectionStringBuilder + { + FailIfMissing = true, + DataSource = databaseFile, + ReadOnly = true + }.ConnectionString; + + connection = new SQLiteConnection(connectionStringBuilder); + } + + private void CreateCommand(string query, int sectionId) + { + command = new SQLiteCommand(query, connection); + command.Parameters.Add(new SQLiteParameter + { + DbType = DbType.Int64, + ParameterName = HydraRingDatabaseConstants.SectionIdParameterName, + Value = sectionId + }); + } + + private void GetReader() + { + reader = command.ExecuteReader(); + } + + /// + /// Opens the connection. + /// + /// Thrown when the connection could not be opened. + private void OpenConnection() + { + connection.Open(); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Riskeer.HydraRing.Calculation.csproj =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Riskeer.HydraRing.Calculation.csproj (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Riskeer.HydraRing.Calculation.csproj (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,398 @@ + + + + {888D4097-8BC2-4703-9FB1-8744C94D525E} + Riskeer.HydraRing.Calculation + Riskeer.HydraRing.Calculation + + + + + + + + ..\..\..\..\packages\System.Data.SQLite.Core.1.0.106.0\lib\net40\System.Data.SQLite.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + + + + + + + + + + + + + + + + + + {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98} + Core.Common.Util + False + + + + + Copying.licenseheader + + + Always + + + + + + ResXFileCodeGenerator + Designer + Resources.Designer.cs + + + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingConfigurationService.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingConfigurationService.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingConfigurationService.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,826 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Security; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Defaults; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Data.Settings; +using Riskeer.HydraRing.Calculation.Data.Variables; +using Riskeer.HydraRing.Calculation.Providers; + +namespace Riskeer.HydraRing.Calculation.Services +{ + /// + /// Service for generating the database creation script that is necessary for performing Hydra-Ring calculations. + /// The following Hydra-Ring features are not exposed (yet): + /// + /// + /// Combination of multiple sections + /// + /// + /// Coupling two hydraulic boundary locations + /// + /// + /// Performing revetment calculations (DesignTables > LayerId) + /// + /// + /// Performing piping calculations (DesignTables > AlternativeId) + /// + /// + /// Type III calculations (DesignTables > Method) + /// + /// + /// In the end, the configuration can be used to generate a Hydra-Ring database creation script. + /// + internal class HydraRingConfigurationService + { + private const double defaultLayerId = 1; + private const double defaultAlternativeId = 1; + private const double defaultHydraRingValue = 0.0; + + private readonly double? defaultHydraRingNullValue = null; + private readonly List hydraRingInputs = new List(); + private readonly FailureMechanismDefaultsProvider failureMechanismDefaultsProvider = new FailureMechanismDefaultsProvider(); + private readonly VariableDefaultsProvider variableDefaultsProvider = new VariableDefaultsProvider(); + + /// + /// Creates a new instance of the class. + /// + /// The to use while performing Hydra-Ring calculations. + public HydraRingConfigurationService(HydraRingUncertaintiesType uncertaintiesType) + { + UncertaintiesType = uncertaintiesType; + } + + /// + /// Gets the to use while performing Hydra-Ring calculations. + /// + public HydraRingUncertaintiesType UncertaintiesType { get; } + + /// + /// Adds Hydra-Ring calculation input to the configuration. + /// + /// The calculation input to add to the configuration. + /// Thrown when with + /// the same has already been added. + /// Thrown when is not unique. + /// Thrown when + /// is not the same with already added input. + public void AddHydraRingCalculationInput(HydraRingCalculationInput input) + { + if (hydraRingInputs.Any(h => h.Section.SectionId == input.Section.SectionId)) + { + throw new ArgumentException(@"Section id is not unique", nameof(input)); + } + + if (hydraRingInputs.Count > 0 && hydraRingInputs.First().FailureMechanismType != input.FailureMechanismType) + { + throw new NotSupportedException("Running calculations for multiple failure mechanism types is not supported."); + } + + hydraRingInputs.Add(input); + } + + /// + /// Writes the database creation script necessary for performing Hydra-Ring calculations. + /// + /// The file path to write the database creation script to. + /// Thrown when an I/O error occurred while opening the file. + /// Thrown when the path can't be accessed due to missing permissions. + /// Thrown when the path can't be accessed due to missing permissions. + public void WriteDatabaseCreationScript(string databaseFilePath) + { + var configurationDictionary = new Dictionary> + { + ["HydraulicModels"] = GetHydraulicModelsConfiguration(), + ["Sections"] = GetSectionsConfiguration(), + ["SectionCalculationSchemes"] = GetSectionCalculationSchemesConfiguration(), + ["DesignTables"] = GetDesignTablesConfiguration(), + ["PreprocessorSettings"] = GetPreprocessorSettingsConfiguration(), + ["Numerics"] = GetNumericsConfiguration(), + ["VariableDatas"] = GetVariableDatasConfiguration(), + ["CalculationProfiles"] = GetCalculationProfilesConfiguration(), + ["SectionFaultTreeModels"] = GetSectionFaultTreeModelsConfiguration(), + ["SectionSubMechanismModels"] = GetSectionSubMechanismModelsConfiguration(), + ["Fetches"] = new List(), + ["AreaPoints"] = new List(), + ["PresentationSections"] = new List(), + ["Profiles"] = GetProfilesConfiguration(), + ["ForelandModels"] = GetForlandModelsConfiguration(), + ["Forelands"] = GetForelandsConfiguration(), + ["ProbabilityAlternatives"] = new List(), + ["SetUpHeights"] = new List(), + ["CalcWindDirections"] = new List(), + ["Swells"] = new List(), + ["WaveReductions"] = new List(), + ["Areas"] = GetAreasConfiguration(), + ["Projects"] = GetProjectsConfiguration(), + ["Breakwaters"] = GetBreakWatersConfiguration() + }; + + File.WriteAllText(databaseFilePath, GenerateDatabaseCreationScript(configurationDictionary)); + } + + private IEnumerable GetHydraulicModelsConfiguration() + { + return new List + { + new OrderedDictionary + { + { + "TimeIntegrationSchemeID", 1 + }, + { + "UncertaintiesID", (int) UncertaintiesType + }, + { + "DataSetName", "WTI 2017" // Fixed: use the WTI 2017 set of hydraulic boundary locations + } + } + }; + } + + private IEnumerable GetSectionsConfiguration() + { + var orderedDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + HydraRingSection hydraRingSection = hydraRingCalculationInput.Section; + + orderedDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingSection.SectionId + }, + { + "PresentationId", 1 // Fixed: no support for combination of multiple sections + }, + { + "MainMechanismId", 1 // Fixed: no support for combination of multiple sections + }, + { + "Name", hydraRingSection.SectionId // Just use the section id + }, + { + "Description", hydraRingSection.SectionId // Just use the section id + }, + { + "RingCoordinateBegin", defaultHydraRingValue // No support for coordinates + }, + { + "RingCoordinateEnd", defaultHydraRingValue // No support for coordinates + }, + { + "XCoordinate", defaultHydraRingValue // No support for coordinates + }, + { + "YCoordinate", defaultHydraRingValue // No support for coordinates + }, + { + "StationId1", hydraRingCalculationInput.HydraulicBoundaryLocationId + }, + { + "StationId2", hydraRingCalculationInput.HydraulicBoundaryLocationId // Same as "StationId1": no support for coupling two hydraulic boundary locations + }, + { + "Relative", 100.0 // Fixed: no support for coupling two hydraulic boundary locations + }, + { + "Normal", GetHydraRingValue(hydraRingSection.CrossSectionNormal) + }, + { + "Length", GetHydraRingValue(hydraRingSection.SectionLength) + } + }); + } + + return orderedDictionaries; + } + + private IEnumerable GetSectionCalculationSchemesConfiguration() + { + var orderedDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + FailureMechanismDefaults failureMechanismDefaults = failureMechanismDefaultsProvider.GetFailureMechanismDefaults(hydraRingCalculationInput.FailureMechanismType); + TimeIntegrationSetting timeIntegrationSetting = hydraRingCalculationInput.TimeIntegrationSetting; + + orderedDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "MechanismId", failureMechanismDefaults.MechanismId + }, + { + "TimeIntegrationSchemeID", timeIntegrationSetting.TimeIntegrationSchemeId + } + }); + } + + return orderedDictionaries; + } + + private IEnumerable GetDesignTablesConfiguration() + { + var orderedDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + FailureMechanismDefaults failureMechanismDefaults = failureMechanismDefaultsProvider.GetFailureMechanismDefaults(hydraRingCalculationInput.FailureMechanismType); + DesignTablesSetting designTablesSetting = hydraRingCalculationInput.DesignTablesSetting; + + orderedDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "MechanismId", failureMechanismDefaults.MechanismId + }, + { + "LayerId", defaultLayerId // Fixed: no support for revetments + }, + { + "AlternativeId", defaultAlternativeId // Fixed: no support for piping + }, + { + "Method", hydraRingCalculationInput.CalculationTypeId + }, + { + "VariableId", hydraRingCalculationInput.VariableId + }, + { + "LoadVariableId", defaultHydraRingValue // Fixed: not relevant + }, + { + "TableMin", defaultHydraRingValue // Fixed: no support for type III calculations (see "Method") + }, + { + "TableMax", defaultHydraRingValue // Fixed: no support for type III calculations (see "Method") + }, + { + "TableStepSize", defaultHydraRingValue // Fixed: no support for type III calculations (see "Method") + }, + { + "ValueMin", GetHydraRingValue(designTablesSetting.ValueMin) + }, + { + "ValueMax", GetHydraRingValue(designTablesSetting.ValueMax) + }, + { + "Beta", GetHydraRingValue(hydraRingCalculationInput.Beta) + } + }); + } + + return orderedDictionaries; + } + + private IEnumerable GetPreprocessorSettingsConfiguration() + { + var orderedDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + PreprocessorSetting preprocessorSetting = hydraRingCalculationInput.PreprocessorSetting; + + if (preprocessorSetting.RunPreprocessor) + { + orderedDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "MinValueRunPreprocessor", preprocessorSetting.ValueMin + }, + { + "MaxValueRunPreprocessor", preprocessorSetting.ValueMax + } + }); + } + } + + return orderedDictionaries; + } + + private IEnumerable GetNumericsConfiguration() + { + var orderDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + FailureMechanismDefaults failureMechanismDefaults = failureMechanismDefaultsProvider.GetFailureMechanismDefaults(hydraRingCalculationInput.FailureMechanismType); + + foreach (int subMechanismId in failureMechanismDefaults.SubMechanismIds) + { + NumericsSetting numericsSetting = hydraRingCalculationInput.NumericsSettings[subMechanismId]; + + orderDictionaries.Add(CreateNumericsRecord(hydraRingCalculationInput.Section.SectionId, + failureMechanismDefaults.MechanismId, + subMechanismId, + hydraRingCalculationInput.IterationMethodId, + numericsSetting)); + } + + if (hydraRingCalculationInput.PreprocessorSetting.RunPreprocessor) + { + orderDictionaries.Add(CreateNumericsRecord(hydraRingCalculationInput.Section.SectionId, + failureMechanismDefaults.PreprocessorMechanismId, + failureMechanismDefaults.PreprocessorSubMechanismId, + hydraRingCalculationInput.IterationMethodId, + hydraRingCalculationInput.PreprocessorSetting.NumericsSetting)); + } + } + + return orderDictionaries; + } + + private static OrderedDictionary CreateNumericsRecord(int sectionId, int mechanismId, int subMechanismId, int iterationMethodId, NumericsSetting numericsSetting) + { + return new OrderedDictionary + { + { + "SectionId", sectionId + }, + { + "MechanismId", mechanismId + }, + { + "LayerId", defaultLayerId // Fixed: no support for revetments + }, + { + "AlternativeId", defaultAlternativeId // Fixed: no support for piping + }, + { + "SubMechanismId", subMechanismId + }, + { + "Method", numericsSetting.CalculationTechniqueId + }, + { + "FormStartMethod", numericsSetting.FormStartMethod + }, + { + "FormNumberOfIterations", numericsSetting.FormNumberOfIterations + }, + { + "FormRelaxationFactor", GetHydraRingValue(numericsSetting.FormRelaxationFactor) + }, + { + "FormEpsBeta", GetHydraRingValue(numericsSetting.FormEpsBeta) + }, + { + "FormEpsHOH", GetHydraRingValue(numericsSetting.FormEpsHoh) + }, + { + "FormEpsZFunc", GetHydraRingValue(numericsSetting.FormEpsZFunc) + }, + { + "DsStartMethod", numericsSetting.DsStartMethod + }, + { + "DsIterationmethod", iterationMethodId + }, + { + "DsMinNumberOfIterations", numericsSetting.DsMinNumberOfIterations + }, + { + "DsMaxNumberOfIterations", numericsSetting.DsMaxNumberOfIterations + }, + { + "DsVarCoefficient", GetHydraRingValue(numericsSetting.DsVarCoefficient) + }, + { + "NiUMin", GetHydraRingValue(numericsSetting.NiUMin) + }, + { + "NiUMax", GetHydraRingValue(numericsSetting.NiUMax) + }, + { + "NiNumberSteps", numericsSetting.NiNumberSteps + } + }; + } + + private IEnumerable GetVariableDatasConfiguration() + { + var orderDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + FailureMechanismDefaults failureMechanismDefaults = failureMechanismDefaultsProvider.GetFailureMechanismDefaults(hydraRingCalculationInput.FailureMechanismType); + + foreach (HydraRingVariable hydraRingVariable in hydraRingCalculationInput.Variables) + { + VariableDefaults variableDefaults = variableDefaultsProvider.GetVariableDefaults(hydraRingCalculationInput.FailureMechanismType, hydraRingVariable.VariableId); + + orderDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "MechanismId", failureMechanismDefaults.MechanismId + }, + { + "LayerId", defaultLayerId // Fixed: no support for revetments + }, + { + "AlternativeId", defaultAlternativeId // Fixed: no support for piping + }, + { + "VariableId", hydraRingVariable.VariableId + }, + { + "Value", GetHydraRingValue(hydraRingVariable.Value) + }, + { + "DistributionType", (int?) hydraRingVariable.DistributionType + }, + { + "Parameter1", GetHydraRingValue(hydraRingVariable.Parameter1) + }, + { + "Parameter2", GetHydraRingNullableValue(hydraRingVariable.Parameter2) + }, + { + "Parameter3", GetHydraRingNullableValue(hydraRingVariable.Parameter3) + }, + { + "Parameter4", GetHydraRingNullableValue(hydraRingVariable.Parameter4) + }, + { + "DeviationType", (int?) hydraRingVariable.DeviationType + }, + { + "CoefficientOfVariation", GetHydraRingValue(hydraRingVariable.CoefficientOfVariation) + }, + { + "CorrelationLength", GetHydraRingValue(variableDefaults.CorrelationLength) + } + }); + } + } + + return orderDictionaries; + } + + private IEnumerable GetProfilesConfiguration() + { + var orderDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + for (var i = 0; i < hydraRingCalculationInput.ProfilePoints.Count(); i++) + { + HydraRingProfilePoint hydraRingProfilePoint = hydraRingCalculationInput.ProfilePoints.ElementAt(i); + + orderDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "SequenceNumber", i + 1 + }, + { + "XCoordinate", GetHydraRingValue(hydraRingProfilePoint.X) + }, + { + "ZCoordinate", GetHydraRingValue(hydraRingProfilePoint.Z) + } + }); + } + } + + return orderDictionaries; + } + + private IEnumerable GetCalculationProfilesConfiguration() + { + var orderDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + for (var i = 0; i < hydraRingCalculationInput.ProfilePoints.Count(); i++) + { + HydraRingProfilePoint hydraRingProfilePoint = hydraRingCalculationInput.ProfilePoints.ElementAt(i); + + orderDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "SequenceNumber", i + 1 + }, + { + "XCoordinate", GetHydraRingValue(hydraRingProfilePoint.X) + }, + { + "ZCoordinate", GetHydraRingValue(hydraRingProfilePoint.Z) + }, + { + "Roughness", GetHydraRingValue(hydraRingProfilePoint.Roughness) + } + }); + } + } + + return orderDictionaries; + } + + private IEnumerable GetForlandModelsConfiguration() + { + var orderDictionaries = new List(); + foreach (HydraRingCalculationInput input in hydraRingInputs.Where(i => i.ForelandsPoints.Any() || i.BreakWater != null)) + { + FailureMechanismDefaults failureMechanismDefaults = failureMechanismDefaultsProvider.GetFailureMechanismDefaults(input.FailureMechanismType); + orderDictionaries.Add(new OrderedDictionary + { + { + "SectionId", input.Section.SectionId + }, + { + "MechanismId", failureMechanismDefaults.MechanismId + }, + { + "Model", 3 + } + }); + } + + return orderDictionaries; + } + + private IEnumerable GetForelandsConfiguration() + { + var orderDictionaries = new List(); + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + for (var i = 0; i < hydraRingCalculationInput.ForelandsPoints.Count(); i++) + { + HydraRingForelandPoint forelandPoint = hydraRingCalculationInput.ForelandsPoints.ElementAt(i); + + orderDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "SequenceNumber", i + 1 + }, + { + "XCoordinate", GetHydraRingValue(forelandPoint.X) + }, + { + "ZCoordinate", GetHydraRingValue(forelandPoint.Z) + } + }); + } + } + + return orderDictionaries; + } + + private IEnumerable GetBreakWatersConfiguration() + { + var orderedDictionaries = new List(); + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + if (hydraRingCalculationInput.BreakWater != null) + { + orderedDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "Type", hydraRingCalculationInput.BreakWater.Type + }, + { + "Height", GetHydraRingValue(hydraRingCalculationInput.BreakWater.Height) + } + }); + } + } + + return orderedDictionaries; + } + + private IEnumerable GetSectionFaultTreeModelsConfiguration() + { + var orderedDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + FailureMechanismDefaults failureMechanismDefaults = failureMechanismDefaultsProvider.GetFailureMechanismDefaults(hydraRingCalculationInput.FailureMechanismType); + + orderedDictionaries.Add(CreateFaultTreeModelsRecord(hydraRingCalculationInput.Section.SectionId, + failureMechanismDefaults.MechanismId, + failureMechanismDefaults.FaultTreeModelId)); + + if (hydraRingCalculationInput.PreprocessorSetting.RunPreprocessor) + { + orderedDictionaries.Add(CreateFaultTreeModelsRecord(hydraRingCalculationInput.Section.SectionId, + failureMechanismDefaults.PreprocessorMechanismId, + failureMechanismDefaults.PreprocessorFaultTreeModelId)); + } + } + + return orderedDictionaries; + } + + private static OrderedDictionary CreateFaultTreeModelsRecord(int sectionId, int mechanismId, int faultTreeModelId) + { + return new OrderedDictionary + { + { + "SectionId", sectionId + }, + { + "MechanismId", mechanismId + }, + { + "LayerId", defaultLayerId // Fixed: no support for revetments + }, + { + "AlternativeId", defaultAlternativeId // Fixed: no support for piping + }, + { + "FaultTreeModelId", faultTreeModelId + } + }; + } + + private IEnumerable GetSectionSubMechanismModelsConfiguration() + { + var orderedDictionaries = new List(); + + foreach (HydraRingCalculationInput hydraRingCalculationInput in hydraRingInputs) + { + FailureMechanismDefaults failureMechanismDefaults = failureMechanismDefaultsProvider.GetFailureMechanismDefaults(hydraRingCalculationInput.FailureMechanismType); + + foreach (int subMechanismId in failureMechanismDefaults.SubMechanismIds) + { + int? subMechanismModelId = hydraRingCalculationInput.GetSubMechanismModelId(subMechanismId); + + if (subMechanismModelId != null) + { + orderedDictionaries.Add(new OrderedDictionary + { + { + "SectionId", hydraRingCalculationInput.Section.SectionId + }, + { + "LayerId", defaultLayerId // Fixed: no support for revetments + }, + { + "AlternativeId", defaultAlternativeId // Fixed: no support for piping + }, + { + "SubMechanismId", subMechanismId + }, + { + "SubMechanismModelId", subMechanismModelId + } + }); + } + } + } + + return orderedDictionaries; + } + + private static IEnumerable GetAreasConfiguration() + { + return new List + { + new OrderedDictionary + { + { + "aDefault", 1 // Fixed: not relevant + }, + { + "bDefault", "1" // Fixed: not relevant + }, + { + "cDefault", "Nederland" // Fixed: not relevant + } + } + }; + } + + private static IEnumerable GetProjectsConfiguration() + { + return new List + { + new OrderedDictionary + { + { + "aDefault", 1 // Fixed: not relevant + }, + { + "bDefault", "WTI 2017" // Fixed: not relevant + }, + { + "cDefault", "Ringtoets calculation" // Fixed: not relevant + } + } + }; + } + + private static string GenerateDatabaseCreationScript(Dictionary> configurationDictionary) + { + var lines = new List(); + + foreach (string tableName in configurationDictionary.Keys) + { + lines.Add("DELETE FROM [" + tableName + "];"); + + if (!configurationDictionary[tableName].Any()) + { + lines.Add(""); + + continue; + } + + foreach (OrderedDictionary orderedDictionary in configurationDictionary[tableName]) + { + var valueStrings = new List(); + + foreach (object val in orderedDictionary.Values) + { + if (val == null) + { + valueStrings.Add("NULL"); + continue; + } + + if (val is string) + { + valueStrings.Add("'" + val + "'"); + continue; + } + + if (val is double) + { + valueStrings.Add(((double) val).ToString(CultureInfo.InvariantCulture)); + continue; + } + + valueStrings.Add(val.ToString()); + } + + string valuesString = string.Join(", ", valueStrings); + + lines.Add("INSERT INTO [" + tableName + "] VALUES (" + valuesString + ");"); + } + + lines.Add(""); + } + + return string.Join(Environment.NewLine, lines); + } + + private static double GetHydraRingValue(double value) + { + return !double.IsNaN(value) ? value : defaultHydraRingValue; + } + + private double? GetHydraRingNullableValue(double value) + { + return !double.IsNaN(value) ? value : defaultHydraRingNullValue; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingInitializationService.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingInitializationService.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingInitializationService.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,159 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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; +using System.IO; +using System.Reflection; +using System.Security; +using Riskeer.HydraRing.Calculation.Data; +using Riskeer.HydraRing.Calculation.Data.Input; +using Riskeer.HydraRing.Calculation.Providers; + +namespace Riskeer.HydraRing.Calculation.Services +{ + /// + /// Service for: + /// + /// + /// generating an initialization script that is necessary for performing Hydra-Ring calculations; + /// + /// + /// providing the corresponding file paths. + /// + /// + /// + internal class HydraRingInitializationService + { + private const string hydraRingBinariesSubDirectory = "HydraRing"; + + private const string iniFileExtension = ".ini"; + private const string databaseFileExtension = ".sql"; + private const string logFileExtension = ".log"; + + private readonly int mechanismId; + private readonly int sectionId; + + private readonly string hlcdFilePath; + private readonly string hydraRingDirectory; + private readonly string configurationDatabaseFilePath; + private readonly string preprocessorDirectory; + + /// + /// Creates a new instance of the class. + /// + /// The failure mechanism type. + /// The section id. + /// The working directory. + /// The + /// which holds all the general information to start a Hydra-Ring calculation. + /// Preprocessing is disabled when + /// matches . + /// Thrown when is null. + public HydraRingInitializationService(HydraRingFailureMechanismType failureMechanismType, + int sectionId, + string temporaryWorkingDirectory, + HydraRingCalculationSettings settings) + { + if (settings == null) + { + throw new ArgumentNullException(nameof(settings)); + } + + mechanismId = new FailureMechanismDefaultsProvider().GetFailureMechanismDefaults(failureMechanismType).MechanismId; + this.sectionId = sectionId; + TemporaryWorkingDirectory = temporaryWorkingDirectory; + hlcdFilePath = settings.HlcdFilePath; + hydraRingDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), hydraRingBinariesSubDirectory); + configurationDatabaseFilePath = Path.Combine(hydraRingDirectory, HydraRingFileConstants.ConfigurationDatabaseFileName); + preprocessorDirectory = settings.PreprocessorDirectory; + } + + /// + /// Gets the ini file path. + /// + public string IniFilePath + { + get + { + return Path.Combine(TemporaryWorkingDirectory, sectionId + iniFileExtension); + } + } + + /// + /// Gets the database creation script file path. + /// + public string DatabaseCreationScriptFilePath + { + get + { + return Path.Combine(TemporaryWorkingDirectory, sectionId + databaseFileExtension); + } + } + + /// + /// Gets the path of the MechanismComputation.exe file. + /// + public string MechanismComputationExeFilePath + { + get + { + return Path.Combine(hydraRingDirectory, HydraRingFileConstants.HydraRingExecutableFileName); + } + } + + /// + /// Gets the directory in which Hydra-Ring will place temporary input and output files created during a + /// calculation. + /// + public string TemporaryWorkingDirectory { get; } + + /// + /// Generates the initialization script necessary for performing Hydra-Ring calculations. + /// + /// The initialization script. + /// Thrown when an I/O error occurred while opening the file. + /// Thrown when the path can't be accessed due to missing permissions. + /// Thrown when the path can't be accessed due to missing permissions. + public void WriteInitializationScript() + { + string initializationFileContent = string.Join(Environment.NewLine, + "section = " + sectionId, + "mechanism = " + mechanismId, + "alternative = 1", // Fixed: no support for piping + "layer = 1", // Fixed: no support for revetments + "logfile = " + sectionId + logFileExtension, + "outputverbosity = basic", + "outputtofile = file", + "projectdbfilename = " + sectionId + databaseFileExtension, + "outputfilename = " + HydraRingFileConstants.DesignTablesFileName, + "configdbfilename = " + configurationDatabaseFilePath, + "hydraulicdbfilename = " + hlcdFilePath, + "designpointOutput = sqlite"); + + if (preprocessorDirectory != string.Empty) + { + initializationFileContent += Environment.NewLine + "preprocessordbdirectory = " + preprocessorDirectory; + } + + File.WriteAllText(IniFilePath, initializationFileContent); + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingProcessFactory.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingProcessFactory.cs (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/Services/HydraRingProcessFactory.cs (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,54 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU 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 General Public License for more details. +// +// You should have received a copy of the GNU 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.Diagnostics; + +namespace Riskeer.HydraRing.Calculation.Services +{ + /// + /// Factory for creating instances that can be used for performing Hydra-Ring calculations. + /// + internal static class HydraRingProcessFactory + { + /// + /// Creates a that can be used for performing a Hydra-Ring calculation. + /// + /// The path to the MechanismComputation.exe file that should be used for the calculation. + /// The path to the ini file that should be used during the calculation. + /// The working directory that should be used during the calculation. + /// The created process. + public static Process Create(string mechanismComputationExeFilePath, string iniFilePath, string workingDirectory) + { + return new Process + { + StartInfo = new ProcessStartInfo(mechanismComputationExeFilePath, iniFilePath) + { + WorkingDirectory = workingDirectory, + UseShellExecute = false, + CreateNoWindow = true, + RedirectStandardInput = true, + RedirectStandardOutput = true, + RedirectStandardError = true + } + }; + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/packages.config =================================================================== diff -u --- Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/packages.config (revision 0) +++ Ringtoets/HydraRing/src/Riskeer.HydraRing.Calculation/packages.config (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -120,7 +120,7 @@ {D749EE4C-CE50-4C17-BF01-9A953028C126} Core.Common.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil.Test/Ringtoets.HydraRing.Calculation.TestUtil.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil.Test/Ringtoets.HydraRing.Calculation.TestUtil.Test.csproj (.../Ringtoets.HydraRing.Calculation.TestUtil.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil.Test/Ringtoets.HydraRing.Calculation.TestUtil.Test.csproj (.../Ringtoets.HydraRing.Calculation.TestUtil.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -32,7 +32,7 @@ - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Ringtoets.HydraRing.Calculation.TestUtil.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Ringtoets.HydraRing.Calculation.TestUtil.csproj (.../Ringtoets.HydraRing.Calculation.TestUtil.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Ringtoets.HydraRing.Calculation.TestUtil.csproj (.../Ringtoets.HydraRing.Calculation.TestUtil.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -35,7 +35,7 @@ - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Ringtoets.Integration.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Ringtoets.Integration.Plugin.Test.csproj (.../Ringtoets.Integration.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Ringtoets.Integration.Plugin.Test.csproj (.../Ringtoets.Integration.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -348,7 +348,7 @@ {F67E8AE8-1FF0-4680-9817-99E025CD9FF6} Ringtoets.HeightStructures.Data.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj (.../Ringtoets.Integration.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj (.../Ringtoets.Integration.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -100,7 +100,7 @@ {F67E8AE8-1FF0-4680-9817-99E025CD9FF6} Ringtoets.HeightStructures.Data.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/Revetment/src/Ringtoets.Revetment.Service/Ringtoets.Revetment.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Revetment/src/Ringtoets.Revetment.Service/Ringtoets.Revetment.Service.csproj (.../Ringtoets.Revetment.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.Service/Ringtoets.Revetment.Service.csproj (.../Ringtoets.Revetment.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -61,7 +61,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj (.../Ringtoets.Revetment.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/Revetment/test/Ringtoets.Revetment.Service.Test/Ringtoets.Revetment.Service.Test.csproj (.../Ringtoets.Revetment.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -50,7 +50,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj (.../Ringtoets.StabilityPointStructures.Plugin.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj (.../Ringtoets.StabilityPointStructures.Plugin.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -80,7 +80,7 @@ Ringtoets.Common.Service False - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation False Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/Ringtoets.StabilityPointStructures.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/Ringtoets.StabilityPointStructures.Service.csproj (.../Ringtoets.StabilityPointStructures.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/Ringtoets.StabilityPointStructures.Service.csproj (.../Ringtoets.StabilityPointStructures.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -50,7 +50,7 @@ Ringtoets.Common.Service False - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation False Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Integration.Test/Ringtoets.StabilityPointStructures.Integration.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Integration.Test/Ringtoets.StabilityPointStructures.Integration.Test.csproj (.../Ringtoets.StabilityPointStructures.Integration.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Integration.Test/Ringtoets.StabilityPointStructures.Integration.Test.csproj (.../Ringtoets.StabilityPointStructures.Integration.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -57,7 +57,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/Ringtoets.StabilityPointStructures.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/Ringtoets.StabilityPointStructures.Plugin.Test.csproj (.../Ringtoets.StabilityPointStructures.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Plugin.Test/Ringtoets.StabilityPointStructures.Plugin.Test.csproj (.../Ringtoets.StabilityPointStructures.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -131,7 +131,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Service.Test/Ringtoets.StabilityPointStructures.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Service.Test/Ringtoets.StabilityPointStructures.Service.Test.csproj (.../Ringtoets.StabilityPointStructures.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Service.Test/Ringtoets.StabilityPointStructures.Service.Test.csproj (.../Ringtoets.StabilityPointStructures.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -58,7 +58,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/Ringtoets.StabilityStoneCover.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/Ringtoets.StabilityStoneCover.Service.csproj (.../Ringtoets.StabilityStoneCover.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/Ringtoets.StabilityStoneCover.Service.csproj (.../Ringtoets.StabilityStoneCover.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -48,7 +48,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Integration.Test/Ringtoets.StabilityStoneCover.Integration.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Integration.Test/Ringtoets.StabilityStoneCover.Integration.Test.csproj (.../Ringtoets.StabilityStoneCover.Integration.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Integration.Test/Ringtoets.StabilityStoneCover.Integration.Test.csproj (.../Ringtoets.StabilityStoneCover.Integration.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -53,7 +53,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/Ringtoets.StabilityStoneCover.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/Ringtoets.StabilityStoneCover.Plugin.Test.csproj (.../Ringtoets.StabilityStoneCover.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Plugin.Test/Ringtoets.StabilityStoneCover.Plugin.Test.csproj (.../Ringtoets.StabilityStoneCover.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -134,7 +134,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/Ringtoets.StabilityStoneCover.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/Ringtoets.StabilityStoneCover.Service.Test.csproj (.../Ringtoets.StabilityStoneCover.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/Ringtoets.StabilityStoneCover.Service.Test.csproj (.../Ringtoets.StabilityStoneCover.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -56,7 +56,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/Ringtoets.WaveImpactAsphaltCover.Service.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/Ringtoets.WaveImpactAsphaltCover.Service.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/Ringtoets.WaveImpactAsphaltCover.Service.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -38,7 +38,7 @@ Ringtoets.Common.Service False - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation False Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Integration.Test/Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Integration.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -53,7 +53,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888d4097-8bc2-4703-9fb1-8744c94d525e} Riskeer.HydraRing.Calculation Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Plugin.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -134,7 +134,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj =================================================================== diff -u -rdd347e5ef5916532cce1004e1941e8523ec448b4 -r0bf87533c711b9fecb268139636ad9a19e36ebdd --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj) (revision dd347e5ef5916532cce1004e1941e8523ec448b4) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj) (revision 0bf87533c711b9fecb268139636ad9a19e36ebdd) @@ -56,7 +56,7 @@ {52093DA6-D545-476A-ADFD-12F56625E36B} Ringtoets.Common.Service.TestUtil - + {888D4097-8BC2-4703-9FB1-8744C94D525E} Riskeer.HydraRing.Calculation