//-----------------------------------------------------------------------
//
// 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; }
}
}