// 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 Core.Common.Base.Geometry; namespace Ringtoets.MacroStabilityInwards.KernelWrapper.Calculators.UpliftVan.Output { /// /// The slice result of an Uplift Van calculation. /// public class UpliftVanSliceResult { /// /// Creates a new instance of . /// /// The top left point of the slice. /// The top right point of the slice. /// The bottom left point of the slice. /// The bottom right point of the slice. /// The object containing the values for the properties /// of the new . /// Thrown when any parameter is null. public UpliftVanSliceResult(Point2D topLeftPoint, Point2D topRightPoint, Point2D bottomLeftPoint, Point2D bottomRightPoint, ConstructionProperties properties) { if (topLeftPoint == null) { throw new ArgumentNullException(nameof(topLeftPoint)); } if (topRightPoint == null) { throw new ArgumentNullException(nameof(topRightPoint)); } if (bottomLeftPoint == null) { throw new ArgumentNullException(nameof(bottomLeftPoint)); } if (bottomRightPoint == null) { throw new ArgumentNullException(nameof(bottomRightPoint)); } if (properties == null) { throw new ArgumentNullException(nameof(properties)); } TopLeftPoint = topLeftPoint; TopRightPoint = topRightPoint; BottomLeftPoint = bottomLeftPoint; BottomRightPoint = bottomRightPoint; Cohesion = properties.Cohesion; FrictionAngle = properties.FrictionAngle; CriticalPressure = properties.CriticalPressure; OverConsolidationRatio = properties.OverConsolidationRatio; Pop = properties.Pop; DegreeOfConsolidationPorePressureSoil = properties.DegreeOfConsolidationPorePressureSoil; DegreeOfConsolidationPorePressureLoad = properties.DegreeOfConsolidationPorePressureLoad; Dilatancy = properties.Dilatancy; ExternalLoad = properties.ExternalLoad; HydrostaticPorePressure = properties.HydrostaticPorePressure; LeftForce = properties.LeftForce; LeftForceAngle = properties.LeftForceAngle; LeftForceY = properties.LeftForceY; RightForce = properties.RightForce; RightForceAngle = properties.RightForceAngle; RightForceY = properties.RightForceY; LoadStress = properties.LoadStress; NormalStress = properties.NormalStress; PorePressure = properties.PorePressure; HorizontalPorePressure = properties.HorizontalPorePressure; VerticalPorePressure = properties.VerticalPorePressure; PiezometricPorePressure = properties.PiezometricPorePressure; EffectiveStress = properties.EffectiveStress; EffectiveStressDaily = properties.EffectiveStressDaily; ExcessPorePressure = properties.ExcessPorePressure; ShearStress = properties.ShearStress; SoilStress = properties.SoilStress; TotalPorePressure = properties.TotalPorePressure; TotalStress = properties.TotalStress; Weight = properties.Weight; } /// /// Gets the top left point. /// public Point2D TopLeftPoint { get; } /// /// Gets the top right point. /// public Point2D TopRightPoint { get; } /// /// Gets the bottom left point. /// public Point2D BottomLeftPoint { get; } /// /// Gets the bottom right point. /// public Point2D BottomRightPoint { get; } /// /// Gets the cohesion. /// [kN/m²] /// public double Cohesion { get; } /// /// Gets the friction angle. /// [°] /// public double FrictionAngle { get; } /// /// Gets the critical pressure. /// [kN/m²] /// public double CriticalPressure { get; } /// /// Gets the over consolidation ratio. /// [-] /// public double OverConsolidationRatio { get; } /// /// Gets the POP. /// [kN/m²] /// public double Pop { get; } /// /// Gets the pore pressure from degree of consolidation soil. /// [kN/m²] /// public double DegreeOfConsolidationPorePressureSoil { get; } /// /// Gets the pore pressure from degree of consolidation load. /// [kN/m²] /// public double DegreeOfConsolidationPorePressureLoad { get; } /// /// Gets the dilatancy of the slice. /// public double Dilatancy { get; } /// /// Gets the external load. /// [kN/m²] /// public double ExternalLoad { get; } /// /// Gets the hydrostatic pore pressure. /// [kN/m²] /// public double HydrostaticPorePressure { get; } /// /// Gets the left force. /// public double LeftForce { get; } /// /// Gets the left force angle. /// [°] /// public double LeftForceAngle { get; } /// /// Gets the left force y. /// public double LeftForceY { get; } /// /// Gets the right force. /// public double RightForce { get; } /// /// Gets the right force angle. /// [°] /// public double RightForceAngle { get; } /// /// Gets the right force y. /// public double RightForceY { get; } /// /// Gets the load stress. /// [kN/m²] /// public double LoadStress { get; } /// /// Gets the normal stress. /// [kN/m²] /// public double NormalStress { get; } /// /// Gets the pore pressure. /// [kN/m²] /// public double PorePressure { get; } /// /// Gets the horizontal pore pressure. /// [kN/m²] /// public double HorizontalPorePressure { get; } /// /// Gets the vertical pore pressure. /// [kN/m²] /// public double VerticalPorePressure { get; } /// /// Gets the piezometric pore pressure. /// [kN/m²] /// public double PiezometricPorePressure { get; } /// /// Gets the effective stress. /// [kN/m²] /// public double EffectiveStress { get; } /// /// Gets the daily effective stress. /// [kN/m²] /// public double EffectiveStressDaily { get; } /// /// Gets the excess pore pressure. /// [kN/m²] /// public double ExcessPorePressure { get; } /// /// Gets the shear stress. /// [kN/m²] /// public double ShearStress { get; } /// /// Gets the soil stress. /// [kN/m²] /// public double SoilStress { get; } /// /// Gets the total pore pressure. /// [kN/m²] /// public double TotalPorePressure { get; } /// /// Gets the total stress. /// [kN/m²] /// public double TotalStress { get; } /// /// Gets the weight. /// [kN/m] /// public double Weight { get; } /// /// Container for properties for constructing a . /// public class ConstructionProperties { /// /// Creates a new instance of . /// public ConstructionProperties() { Cohesion = double.NaN; FrictionAngle = double.NaN; CriticalPressure = double.NaN; OverConsolidationRatio = double.NaN; Pop = double.NaN; DegreeOfConsolidationPorePressureSoil = double.NaN; DegreeOfConsolidationPorePressureLoad = double.NaN; Dilatancy = double.NaN; ExternalLoad = double.NaN; HydrostaticPorePressure = double.NaN; LeftForce = double.NaN; LeftForceAngle = double.NaN; LeftForceY = double.NaN; RightForce = double.NaN; RightForceAngle = double.NaN; RightForceY = double.NaN; LoadStress = double.NaN; NormalStress = double.NaN; PorePressure = double.NaN; HorizontalPorePressure = double.NaN; VerticalPorePressure = double.NaN; PiezometricPorePressure = double.NaN; EffectiveStress = double.NaN; EffectiveStressDaily = double.NaN; ExcessPorePressure = double.NaN; ShearStress = double.NaN; SoilStress = double.NaN; TotalPorePressure = double.NaN; TotalStress = double.NaN; Weight = double.NaN; } /// /// Gets or sets the cohesion. /// [kN/m²] /// public double Cohesion { internal get; set; } /// /// Gets or sets the friction angle. /// [°] /// public double FrictionAngle { internal get; set; } /// /// Gets or sets the critical pressure. /// [kN/m²] /// public double CriticalPressure { internal get; set; } /// /// Gets or sets the over consolidation ratio. /// [-] /// public double OverConsolidationRatio { internal get; set; } /// /// Gets or sets the POP. /// [kN/m²] /// public double Pop { internal get; set; } /// /// Gets or sets the pore pressure from degree of consolidation soil. /// [kN/m²] /// public double DegreeOfConsolidationPorePressureSoil { internal get; set; } /// /// Gets or sets the pore pressure from degree of consolidation load. /// [kN/m²] /// public double DegreeOfConsolidationPorePressureLoad { internal get; set; } /// /// Gets or sets the dilatancy of the slice. /// public double Dilatancy { internal get; set; } /// /// Gets or sets the external load. /// [kN/m²] /// public double ExternalLoad { internal get; set; } /// /// Gets or sets the hydrostatic pore pressure. /// [kN/m²] /// public double HydrostaticPorePressure { internal get; set; } /// /// Gets or sets the left force. /// public double LeftForce { internal get; set; } /// /// Gets or sets the left force angle. /// [°] /// public double LeftForceAngle { internal get; set; } /// /// Gets or sets the left force y. /// public double LeftForceY { internal get; set; } /// /// Gets or sets the right force. /// public double RightForce { internal get; set; } /// /// Gets or sets the right force angle. /// [°] /// public double RightForceAngle { internal get; set; } /// /// Gets or sets the right force y. /// public double RightForceY { internal get; set; } /// /// Gets or sets the load stress. /// [kN/m²] /// public double LoadStress { internal get; set; } /// /// Gets or sets the normal stress. /// [kN/m²] /// public double NormalStress { internal get; set; } /// /// Gets or sets the pore pressure. /// [kN/m²] /// public double PorePressure { internal get; set; } /// /// Gets or sets the horizontal pore pressure. /// [kN/m²] /// public double HorizontalPorePressure { internal get; set; } /// /// Gets or sets the vertical pore pressure. /// [kN/m²] /// public double VerticalPorePressure { internal get; set; } /// /// Gets or sets the piezometric pore pressure. /// [kN/m²] /// public double PiezometricPorePressure { internal get; set; } /// /// Gets or sets the effective stress. /// [kN/m²] /// public double EffectiveStress { internal get; set; } /// /// Gets or sets the daily effective stress. /// [kN/m²] /// public double EffectiveStressDaily { internal get; set; } /// /// Gets or sets the excess pore pressure. /// [kN/m²] /// public double ExcessPorePressure { internal get; set; } /// /// Gets or sets the shear stress. /// [kN/m²] /// public double ShearStress { internal get; set; } /// /// Gets or sets the soil stress. /// [kN/m²] /// public double SoilStress { internal get; set; } /// /// Gets or sets the total pore pressure. /// [kN/m²] /// public double TotalPorePressure { internal get; set; } /// /// Gets or sets the total stress. /// [kN/m²] /// public double TotalStress { internal get; set; } /// /// Gets or sets the weight. /// [kN/m] /// public double Weight { internal get; set; } } } }