// Copyright (C) Stichting Deltares 2017. 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 Ringtoets.Common.IO.Configurations;
namespace Ringtoets.MacroStabilityInwards.IO.Configurations
{
///
/// Class that represents a configuration of a macro stability inwards calculation scenario.
///
public class MacroStabilityInwardsCalculationConfiguration : IConfigurationItem
{
private string name;
///
/// Creates a new instance of .
///
/// The name of the .
/// Thrown when is null.
public MacroStabilityInwardsCalculationConfiguration(string name)
{
Name = name;
}
///
/// Gets or sets the assessment level of the calculation.
///
public double? AssessmentLevel { get; set; }
///
/// Gets or sets the name of the hydraulic boundary location of the calculation.
///
public string HydraulicBoundaryLocationName { get; set; }
///
/// Gets or sets the name of the surface line of the calculation.
///
public string SurfaceLineName { get; set; }
///
/// Gets or sets the name of the stochastic soil model of the calculation.
///
public string StochasticSoilModelName { get; set; }
///
/// Gets or sets the name of the stochastic soil profile of the calculation.
///
public string StochasticSoilProfileName { get; set; }
///
/// Gets or sets the configuration of the scenario of the calculation.
///
public ScenarioConfiguration Scenario { get; set; }
///
/// Gets or sets the dike soil scenario of the calculation.
///
public ConfigurationDikeSoilScenario? DikeSoilScenario { get; set; }
///
/// Gets or sets the minimum depth of the slip plane.
///
public double? SlipPlaneMinimumDepth { get; set; }
///
/// Gets or sets the minimum length of the slip plane.
///
public double? SlipPlaneMinimumLength { get; set; }
///
/// Gets or sets the maximum slice width.
///
public double? MaximumSliceWidth { get; set; }
///
/// Gets or sets whether zones should be created.
///
public bool? CreateZones { get; set; }
///
/// Gets or sets the name for the calculation.
///
/// Thrown when is null.
public string Name
{
get
{
return name;
}
set
{
if (value == null)
{
throw new ArgumentNullException(nameof(value), @"Name is required for a calculation configuration.");
}
name = value;
}
}
#region Water stresses
///
/// Gets or sets the average river water level.
///
public double? WaterLevelRiverAverage { get; set; }
#region Drainage
///
/// Gets or sets whether a drainage construction is present.
///
public bool? DrainageConstructionPresent { get; set; }
///
/// Gets or sets the x coordinate of the drainage construction.
///
public double? XCoordinateDrainageConstruction { get; set; }
///
/// Gets or sets the z coordinate of the drainage construction.
///
public double? ZCoordinateDrainageConstruction { get; set; }
#endregion
///
/// Gets or sets the minimum level phreatic line at dike top river.
///
public double? MinimumLevelPhreaticLineAtDikeTopRiver { get; set; }
///
/// Gets or sets the minimum level phreatic line at dike top polder.
///
public double? MinimumLevelPhreaticLineAtDikeTopPolder { get; set; }
///
/// Gets or sets whether phreatic line 3 and 4 should be adjusted for Uplift.
///
public bool? AdjustPhreaticLine3And4ForUplift { get; set; }
///
/// Gets or sets the phreatic line configuration for phreatic line 2.
///
public PhreaticLineConfiguration PhreaticLine2 { get; set; }
///
/// Gets or sets the phreatic line configuration for phreatic line 3.
///
public PhreaticLineConfiguration PhreaticLine3 { get; set; }
///
/// Gets or sets the phreatic line configuration for phreatic line 4.
///
public PhreaticLineConfiguration PhreaticLine4 { get; set; }
#endregion
#region Grid
///
/// Gets or sets the grid determination type.
///
public ConfigurationGridDeterminationType? GridDeterminationType { get; set; }
///
/// Gets or sets the value whether the grid should be moved.
///
public bool? MoveGrid { get; set; }
#region Tangent line
///
/// Gets or sets the tangent line determination type.
///
public ConfigurationTangentLineDeterminationType? TangentLineDeterminationType { get; set; }
///
/// Gets or sets the tangent line z top.
///
public double? TangentLineZTop { get; set; }
///
/// Gets or sets the tangent line z bottom.
///
public double? TangentLineZBottom { get; set; }
///
/// Gets or sets the number of tangent lines.
///
public int? TangentLineNumber { get; set; }
#endregion
///
/// Gets or sets the left grid.
///
public MacroStabilityInwardsGridConfiguration LeftGrid { get; set; }
///
/// Gets or sets the right grid.
///
public MacroStabilityInwardsGridConfiguration RightGrid { get; set; }
#endregion
}
}