// 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.Collections.Generic; using Deltares.WTIStability; using Deltares.WTIStability.Data.Geo; using Deltares.WTIStability.Data.Standard; using Ringtoets.MacroStabilityInwards.KernelWrapper.Calculators.UpliftVan; namespace Ringtoets.MacroStabilityInwards.KernelWrapper.Kernels.UpliftVan { /// /// Interface representing Uplift Van kernel input, methods and output. /// /// /// This interface is introduced for being able to test the conversion of: /// /// input into kernel input; /// kernel output into output. /// /// public interface IUpliftVanKernel { /// /// Sets the soil model. /// SoilModel SoilModel { set; } /// /// Sets the soil profile. /// SoilProfile2D SoilProfile { set; } /// /// Sets the location under extreme conditions. /// StabilityLocation LocationExtreme { set; } /// /// Sets the location under daily circumstances. /// StabilityLocation LocationDaily { set; } /// /// Sets the surface line. /// SurfaceLine2 SurfaceLine { set; } /// /// Sets the move grid property. /// bool MoveGrid { set; } /// /// Sets the maximum slice width. /// [m] /// double MaximumSliceWidth { set; } /// /// Sets the slip plane Uplift Van. /// SlipPlaneUpliftVan SlipPlaneUpliftVan { set; } /// /// Sets whether the grid is automatically determined or not. /// bool GridAutomaticDetermined { set; } /// /// Sets whether zones should be created. /// bool CreateZones { set; } /// /// Sets whether forbidden zones are automatically determined or not. /// bool AutomaticForbiddenZones { set; } /// /// Sets the minimum depth of the slip plane. /// [m] /// double SlipPlaneMinimumDepth { set; } /// /// Sets the minimum length of the slip plane. /// [m] /// double SlipPlaneMinimumLength { set; } /// /// Gets the factor of stability. /// double FactorOfStability { get; } /// /// Gets the z value. /// double ZValue { get; } /// /// Gets the forbidden zones x entry min. /// double ForbiddenZonesXEntryMin { get; } /// /// Gets the forbidden zones x entry max. /// double ForbiddenZonesXEntryMax { get; } /// /// Gets the sliding curve result. /// SlidingDualCircle SlidingCurveResult { get; } /// /// Gets the slip plane result. /// SlipPlaneUpliftVan SlipPlaneResult { get; } /// /// Gets the messages returned by the kernel during /// the calculation. /// IEnumerable CalculationMessages { get; } /// /// Performs the Uplift Van calculation. /// /// Thrown when /// an error occurs when performing the calculation. void Calculate(); /// /// Validates the input for the Uplift Van calculation. /// /// An of objects. /// Thrown when /// an error occurs when performing the validation. IEnumerable Validate(); } }