// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of the DAM Engine. // // The DAM Engine is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Xml.Serialization; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Standard.Calculation; namespace Deltares.DamEngine.Data.RWScenarios { public class RWScenariosResult { private IList rwScenarioResults = new List(); private CalculationResult calculationResult = CalculationResult.NoRun; public CalculationResult CalculationResult { get { return calculationResult; } set { calculationResult = value; } } public double SafetyFactor { get; set; } public IList RWScenarioResults { get { return rwScenarioResults; } private set { rwScenarioResults = value; } } public RWScenarioResult GetScenarioResult(ScenarioType scenarioType) { foreach (RWScenarioResult scenarioResult in this.RWScenarioResults) { if (scenarioResult.ScenarioType == scenarioType) { return scenarioResult; } } return null; } } public class RWScenarioResult { private LoadSituation loadSituation = LoadSituation.Wet; private DikeDrySensitivity _dikeDrySensitivity = DikeDrySensitivity.None; private HydraulicShortcutType hydraulicShortcutType = HydraulicShortcutType.NoHydraulicShortcut; private UpliftType upliftType = UpliftType.NoUplift; private MStabModelType modelOption; private CalculationResult calculationResult = CalculationResult.NoRun; private ScenarioType scenarioType = ScenarioType.Scenario01; private IList rwScenarioProfileResults = new List(); public CalculationResult CalculationResult { get { return calculationResult; } set { calculationResult = value; } } public double SafetyFactor { get; set; } public IList RWScenarioProfileResults { get { return rwScenarioProfileResults; } private set { rwScenarioProfileResults = value; } } public LoadSituation LoadSituation { get { return loadSituation; } set { loadSituation = value; } } public DikeDrySensitivity DikeDrySensitivity { get { return _dikeDrySensitivity; } set { _dikeDrySensitivity = value; } } public HydraulicShortcutType HydraulicShortcutType { get { return hydraulicShortcutType; } set { hydraulicShortcutType = value; } } public UpliftType UpliftType { get { return upliftType; } set { upliftType = value; } } public MStabModelType ModelOption { get { return modelOption; } set { modelOption = value; } } public ScenarioType ScenarioType { get { return scenarioType; } set { scenarioType = value; } } } public class RWScenarioProfileResult : RWResult { private FailureMechanismSystemType failureMechanismType = FailureMechanismSystemType.StabilityInside; private DikeDrySensitivity dikeDrySensitivity = DikeDrySensitivity.None; private HydraulicShortcutType hydraulicShortcutType = HydraulicShortcutType.NoHydraulicShortcut; private UpliftType upliftType = UpliftType.NoUplift; private LoadSituation loadSituation = LoadSituation.Wet; private MStabModelType mstabModelOption; private PipingModelType pipingModelOption; private SoilGeometryProbability soilGeometryProbability = null; private Location location = null; private ScenarioType scenarioType = ScenarioType.Scenario01; private string baseFileName = ""; public RWScenarioProfileResult(Location location, SoilGeometryProbability soilGeometryProbability) { this.location = location; this.soilGeometryProbability = soilGeometryProbability; } public Location Location { get { return location; } } public const string CalculationCategory = "Calculation"; public string LocationName { get { return location.Name; } } public LoadSituation LoadSituation { get { return loadSituation; } set { loadSituation = value; } } public DikeDrySensitivity DikeDrySensitivity { get { return dikeDrySensitivity; } set { dikeDrySensitivity = value; } } public HydraulicShortcutType HydraulicShortcutType { get { return hydraulicShortcutType; } set { hydraulicShortcutType = value; } } public UpliftType UpliftType { get { return upliftType; } set { upliftType = value; } } public MStabModelType MstabModelOption { get { return mstabModelOption; } set { mstabModelOption = value; } } public PipingModelType PipingModelOption { get { return pipingModelOption; } set { pipingModelOption = value; } } public ScenarioType ScenarioType { get { return scenarioType; } set { scenarioType = value; } } public string BaseFileName { get { return baseFileName; } set { baseFileName = value; } } public FailureMechanismSystemType FailureMechanismType { get { return failureMechanismType; } set { failureMechanismType = value; } } public SoilGeometryProbability SoilGeometryProbability { get { return soilGeometryProbability; } } public string SoilProfileName { get { return soilGeometryProbability.SoilProfile.Name; } } public double SoilProfileProbability { get { return soilGeometryProbability.Probability; } } } }