Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsSlice.cs =================================================================== diff -u -r365f33fe0130eac94cacb979165488d9ae124f3c -r7b8a021f38d77546b7c3318f5f0dedda63168f91 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsSlice.cs (.../MacroStabilityInwardsSlice.cs) (revision 365f33fe0130eac94cacb979165488d9ae124f3c) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsSlice.cs (.../MacroStabilityInwardsSlice.cs) (revision 7b8a021f38d77546b7c3318f5f0dedda63168f91) @@ -20,6 +20,7 @@ // All rights reserved. using System; +using Core.Common.Base.Data; using Core.Common.Base.Geometry; namespace Ringtoets.MacroStabilityInwards.Data @@ -69,36 +70,43 @@ 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; + XCenter = new RoundedDouble(2, (topLeftPoint.X + topRightPoint.X) / 2.0); + ZCenterBottom = new RoundedDouble(2, new Segment2D(bottomLeftPoint, bottomRightPoint).Interpolate(XCenter)); + Width = new RoundedDouble(2, topRightPoint.X - topLeftPoint.X); + ArcLength = new RoundedDouble(2, bottomLeftPoint.GetEuclideanDistanceTo(bottomRightPoint)); + BottomAngle = new RoundedDouble(2, Math2D.GetAngleBetween(bottomLeftPoint, bottomRightPoint)); + TopAngle = new RoundedDouble(2, Math2D.GetAngleBetween(topLeftPoint, topRightPoint)); + + Cohesion = new RoundedDouble(3, properties.Cohesion); + FrictionAngle = new RoundedDouble(3, properties.FrictionAngle); + CriticalPressure = new RoundedDouble(3, properties.CriticalPressure); + OverConsolidationRatio = new RoundedDouble(3, properties.OverConsolidationRatio); + Pop = new RoundedDouble(3, properties.Pop); + DegreeOfConsolidationPorePressureSoil = new RoundedDouble(3, properties.DegreeOfConsolidationPorePressureSoil); + DegreeOfConsolidationPorePressureLoad = new RoundedDouble(3, properties.DegreeOfConsolidationPorePressureLoad); + Dilatancy = new RoundedDouble(3, properties.Dilatancy); + ExternalLoad = new RoundedDouble(3, properties.ExternalLoad); + HydrostaticPorePressure = new RoundedDouble(3, properties.HydrostaticPorePressure); + LeftForce = new RoundedDouble(3, properties.LeftForce); + LeftForceAngle = new RoundedDouble(3, properties.LeftForceAngle); + LeftForceY = new RoundedDouble(3, properties.LeftForceY); + RightForce = new RoundedDouble(3, properties.RightForce); + RightForceAngle = new RoundedDouble(3, properties.RightForceAngle); + RightForceY = new RoundedDouble(3, properties.RightForceY); + LoadStress = new RoundedDouble(3, properties.LoadStress); + NormalStress = new RoundedDouble(3, properties.NormalStress); + PorePressure = new RoundedDouble(3, properties.PorePressure); + HorizontalPorePressure = new RoundedDouble(3, properties.HorizontalPorePressure); + VerticalPorePressure = new RoundedDouble(3, properties.VerticalPorePressure); + PiezometricPorePressure = new RoundedDouble(3, properties.PiezometricPorePressure); + EffectiveStress = new RoundedDouble(3, properties.EffectiveStress); + EffectiveStressDaily = new RoundedDouble(3, properties.EffectiveStressDaily); + ExcessPorePressure = new RoundedDouble(3, properties.ExcessPorePressure); + ShearStress = new RoundedDouble(3, properties.ShearStress); + SoilStress = new RoundedDouble(3, properties.SoilStress); + TotalPorePressure = new RoundedDouble(3, properties.TotalPorePressure); + TotalStress = new RoundedDouble(3, properties.TotalStress); + Weight = new RoundedDouble(3, properties.Weight); } /// @@ -122,183 +130,219 @@ public Point2D BottomRightPoint { get; private set; } /// + /// Gets the X center point of the slice. + /// [m] + /// + public RoundedDouble XCenter { get; } + + /// + /// Gets the Z center bottom point of the slice. + /// [m+NAP] + /// + public RoundedDouble ZCenterBottom { get; } + + /// + /// Gets the width of the slice. + /// [m] + /// + public RoundedDouble Width { get; } + + /// + /// Gets the arc length of the slice. + /// [m] + /// + public RoundedDouble ArcLength { get; } + + /// + /// Gets the top angle of the slice. + /// [°] + /// + public RoundedDouble TopAngle { get; } + + /// + /// Gets the bottom angle of the slice. + /// [°] + /// + public RoundedDouble BottomAngle { get; } + + /// /// Gets the cohesion. /// [kN/m²] /// - public double Cohesion { get; } + public RoundedDouble Cohesion { get; } /// /// Gets the friction angle. /// [°] /// - public double FrictionAngle { get; } + public RoundedDouble FrictionAngle { get; } /// /// Gets the critical pressure. /// [kN/m²] /// - public double CriticalPressure { get; } + public RoundedDouble CriticalPressure { get; } /// /// Gets the OCR. /// [-] /// - public double OverConsolidationRatio { get; } + public RoundedDouble OverConsolidationRatio { get; } /// /// Gets the POP. /// [kN/m²] /// - public double Pop { get; } + public RoundedDouble Pop { get; } /// /// Gets the pore pressure from degree of consolidation soil. /// [kN/m²] /// - public double DegreeOfConsolidationPorePressureSoil { get; } + public RoundedDouble DegreeOfConsolidationPorePressureSoil { get; } /// /// Gets the pore pressure from degree of consolidation load. /// [kN/m²] /// - public double DegreeOfConsolidationPorePressureLoad { get; } + public RoundedDouble DegreeOfConsolidationPorePressureLoad { get; } /// /// Gets the dilatancy of the slice. /// - public double Dilatancy { get; } + public RoundedDouble Dilatancy { get; } /// /// Gets the external load. /// [kN/m²] /// - public double ExternalLoad { get; } + public RoundedDouble ExternalLoad { get; } /// /// Gets the hydrostatic pore pressure. /// [kN/m²] /// - public double HydrostaticPorePressure { get; } + public RoundedDouble HydrostaticPorePressure { get; } /// /// Gets the left force. /// [kN/m²] /// - public double LeftForce { get; } + public RoundedDouble LeftForce { get; } /// /// Gets the left force angle. /// [°] /// - public double LeftForceAngle { get; } + public RoundedDouble LeftForceAngle { get; } /// /// Gets the left force y. /// [kN/m²] /// - public double LeftForceY { get; } + public RoundedDouble LeftForceY { get; } /// /// Gets the right force. /// [kN/m²] /// - public double RightForce { get; } + public RoundedDouble RightForce { get; } /// /// Gets the right force angle. /// [°] /// - public double RightForceAngle { get; } + public RoundedDouble RightForceAngle { get; } /// /// Gets the right force y. /// [kN/m²] /// - public double RightForceY { get; } + public RoundedDouble RightForceY { get; } /// /// Gets the load stress. /// [kN/m²] /// - public double LoadStress { get; } + public RoundedDouble LoadStress { get; } /// /// Gets the normal stress. /// [kN/m²] /// - public double NormalStress { get; } + public RoundedDouble NormalStress { get; } /// /// Gets the pore pressure. /// [kN/m²] /// - public double PorePressure { get; } + public RoundedDouble PorePressure { get; } /// /// Gets the horizontal pore pressure. /// [kN/m²] /// - public double HorizontalPorePressure { get; } + public RoundedDouble HorizontalPorePressure { get; } /// /// Gets the vertical pore pressure. /// [kN/m²] /// - public double VerticalPorePressure { get; } + public RoundedDouble VerticalPorePressure { get; } /// /// Gets the piezometric pore pressure. /// [kN/m²] /// - public double PiezometricPorePressure { get; } + public RoundedDouble PiezometricPorePressure { get; } /// /// Gets the effective stress. /// [kN/m²] /// - public double EffectiveStress { get; } + public RoundedDouble EffectiveStress { get; } /// /// Gets the daily effective stress. /// [kN/m²] /// - public double EffectiveStressDaily { get; } + public RoundedDouble EffectiveStressDaily { get; } /// /// Gets the excess pore pressure. /// [kN/m²] /// - public double ExcessPorePressure { get; } + public RoundedDouble ExcessPorePressure { get; } /// /// Gets the shear stress. /// [kN/m²] /// - public double ShearStress { get; } + public RoundedDouble ShearStress { get; } /// /// Gets the soil stress. /// [kN/m²] /// - public double SoilStress { get; } + public RoundedDouble SoilStress { get; } /// /// Gets the total pore pressure. /// [kN/m²] /// - public double TotalPorePressure { get; } + public RoundedDouble TotalPorePressure { get; } /// /// Gets the total stress. /// [kN/m²] /// - public double TotalStress { get; } + public RoundedDouble TotalStress { get; } /// /// Gets the weight. /// [kN/m] /// - public double Weight { get; } + public RoundedDouble Weight { get; } public object Clone() {