using Deltares.Geotechnics; using Deltares.Geotechnics.Soils; using Deltares.Probabilistic; using Deltares.Standard.Reflection; namespace Deltares.Stability { /// /// Handles conversions between measured data and design values for WTI macrostability /// calculations. /// public class WtiStabilityTransformer : StochastTransformer { protected override double GetVariationCoefficient(object owner, string property) { var variationCoefficient = double.NaN; var soil = owner as Soil; if (soil != null) { if (soil.GetMemberName(s => s.AbovePhreaticLevel) == property || soil.GetMemberName(s => s.BelowPhreaticLevel) == property) { variationCoefficient = 0.5; } else if (soil.GetMemberName(s => s.Cohesion) == property || soil.GetMemberName(s => s.FrictionAngle) == property || soil.GetMemberName(s => s.StrengthIncreaseExponent) == property || soil.GetMemberName(s => s.RatioCuPc) == property) { variationCoefficient = 0.05; } } var preConsolidationStress = owner as PreConsolidationStress; if (preConsolidationStress != null && preConsolidationStress.GetMemberName(pcs => pcs.StressValue) == property) { variationCoefficient = 0.05; } return variationCoefficient; } } }