// 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 Core.Common.Base.Data;
namespace Ringtoets.MacroStabilityInwards.Primitives
{
///
/// Interface that holds macro stability inwards calculation specific input parameters for
/// a Waternet calculation.
///
public interface IMacroStabilityInwardsWaternetInput
{
///
/// Gets the surface line.
///
MacroStabilityInwardsSurfaceLine SurfaceLine { get; }
///
/// Gets the outside high water level.
/// [m+NAP]
///
RoundedDouble AssessmentLevel { get; }
///
/// Gets the profile which contains a 2 dimensional definition of soil layers with properties.
///
IMacroStabilityInwardsSoilProfileUnderSurfaceLine SoilProfileUnderSurfaceLine { get; }
///
/// Gets the dike soil scenario.
///
MacroStabilityInwardsDikeSoilScenario DikeSoilScenario { get; }
///
/// Gets the average river water level.
/// [m+NAP]
///
RoundedDouble WaterLevelRiverAverage { get; }
///
/// Gets whether a drainage construction is present.
///
bool DrainageConstructionPresent { get; }
///
/// Gets the x coordinate of the drainage construction.
/// [m]
///
RoundedDouble XCoordinateDrainageConstruction { get; }
///
/// Gets the z coordinate of the drainage construction.
/// [m+NAP]
///
RoundedDouble ZCoordinateDrainageConstruction { get; }
///
/// Gets the minimum level phreatic line at dike top river.
/// [m+NAP]
///
RoundedDouble MinimumLevelPhreaticLineAtDikeTopRiver { get; }
///
/// Gets the minimum level phreatic line at dike top polder.
/// [m+NAP]
///
RoundedDouble MinimumLevelPhreaticLineAtDikeTopPolder { get; }
///
/// Gets whether phreatic line 3 and 4 should be adjusted for Uplift.
///
bool AdjustPhreaticLine3And4ForUplift { get; }
///
/// Gets the leakage length outwards of phreatic line 3.
/// [m]
///
RoundedDouble LeakageLengthOutwardsPhreaticLine3 { get; }
///
/// Gets the leakage length inwards of phreatic line 3.
/// [m]
///
RoundedDouble LeakageLengthInwardsPhreaticLine3 { get; }
///
/// Gets the leakage length outwards of phreatic line 4.
/// [m]
///
RoundedDouble LeakageLengthOutwardsPhreaticLine4 { get; }
///
/// Gets the leakage length inwards of phreatic line 4.
/// [m]
///
RoundedDouble LeakageLengthInwardsPhreaticLine4 { get; }
///
/// Gets the piezometric head of the phreatic line 2 outwards.
/// [m+NAP]
///
RoundedDouble PiezometricHeadPhreaticLine2Outwards { get; }
///
/// Gets the piezometric head of the phreatic line 2 inwards.
/// [m+NAP]
///
RoundedDouble PiezometricHeadPhreaticLine2Inwards { get; }
///
/// Gets the locations input values for extreme conditions.
///
IMacroStabilityInwardsLocationInputExtreme LocationInputExtreme { get; }
///
/// Gets the locations input values for daily conditions.
///
IMacroStabilityInwardsLocationInputDaily LocationInputDaily { get; }
}
}