//----------------------------------------------------------------------- // // Copyright (c) 2010 Deltares. All rights reserved. // // B.S.T.I.M. The // tom.the@deltares.nl // 11-02-2010 // n.a. //----------------------------------------------------------------------- using Deltares.Probabilistic; namespace Deltares.Dam.Data { public class ModelParameters { public double TrafficLoad { get; set; } // moved to location public double MinimalCircleDepth { get; set; } // to be moved to location public double LevelReductionInside { get; set; } // not used yet; to be moved to location public double LevelReductionOutside { get; set; } // not used yet; to be moved to location public string MapForSoilGeometries2D { get; set; } // ??? public ModelParametersForPLLines ModelParametersForPLLines { get; set; } // to be moved to location public ModelFactors ModelFactors { get; set; } // to be moved to location public DistributionType LayerHeightDistribution { get; set; } // to be moved to location public double LayerHeightDeviation { get; set; } // to be moved to location public ModelParameters() { ModelParametersForPLLines = new ModelParametersForPLLines(); ModelFactors = new ModelFactors { // Default values for ModelFactors in ModelParameters // These can be overruled by reading them from the ModelParameters.csv file // Or they can be overruled per scenario in the scearios.csv file RequiredSafetyFactorStabilityInnerSlope = 1.0, RequiredSafetyFactorStabilityOuterSlope = 1.0, RequiredSafetyFactorPiping = 1.0, RequiredProbabilityOfFailureStabilityInnerslope = 0.00000001, RequiredProbabilityOfFailureStabilityOuterslope = 0.00000001, RequiredProbabilityOfFailurePiping = 0.00000001, UpliftCriterionPiping = 1.2, UpliftCriterionStability = 1.2 }; } public static void AssignDefaultToNullValues(ModelFactors modelFactors) { var defaults = new ModelParameters().ModelFactors.AllValues; for (var i = 0; i < defaults.Length; ++i) { if (modelFactors.AllValues[i] == null) { modelFactors.AllValues[i] = defaults[i]; } } } } public class ModelParametersForPLLines { public virtual double PenetrationLength { get; set; } public virtual double DampingFactorPL3 { get; set; } public virtual double DampingFactorPL4 { get; set; } public virtual PLLineCreationMethod PLLineCreationMethod { get; set; } } }