// 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.HydraRing.Calculation.Data.Input.WaveConditions; using Ringtoets.HydraRing.Calculation.Exceptions; namespace Ringtoets.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(); } }