Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/Dikes Assessment Regional/RWScenariosCalculation.cs
===================================================================
diff -u -r334 -r404
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/Dikes Assessment Regional/RWScenariosCalculation.cs (.../RWScenariosCalculation.cs) (revision 334)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/Dikes Assessment Regional/RWScenariosCalculation.cs (.../RWScenariosCalculation.cs) (revision 404)
@@ -22,6 +22,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
+using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Deltares.DamEngine.Calculators.SchematizationFactor;
@@ -33,6 +34,7 @@
using Deltares.DamEngine.Data.Standard.Calculation;
using Deltares.DamEngine.Data.Standard.Language;
using Deltares.DamEngine.Data.Standard.Logging;
+using Deltares.Stability.Calculation;
namespace Deltares.DamEngine.Calculators.Dikes_Assessment_Regional
{
@@ -291,7 +293,7 @@
catch (Exception e)
{
job.CalculationResult = CalculationResult.UnexpectedError;
- sendMessageDelegate(new LogMessage(LogMessageType.Warning, job.Location, String.Format("Error: {0}", e.Message)));
+ sendMessageDelegate(new LogMessage(LogMessageType.Warning, job, String.Format(job.LocationName + " Error: {0}", e.Message)));
}
}
@@ -335,9 +337,9 @@
// waterLevel = job.Location.BoezemLevelTp;
// break;
// }
-// job.SoilGeometryProbability.SoilProfile.EnsureUniqueLayerIds();
+// //job.SoilGeometryProbability.SoilProfile.EnsureUniqueLayerIds();
// var calculationName = GetCalculationNameForPipingCalculator(job);
-// calculator.FilenameCalculation = Path.Combine(Path.Combine(DamProject.ProjectWorkingPath, job.FailureMechanismType.ToString()), calculationName);
+// calculator.FilenameCalculation = Path.Combine(Path.Combine(DamProjectData.ProjectWorkingPath, job.FailureMechanismType.ToString()), calculationName);
// calculator.IsHydraulicShortcut = (job.HydraulicShortcutType == HydraulicShortcutType.HydraulicShortcut);
// double? pipingFactor = calculator.CalculatePipingFactor(job.Location, job.Location.LocalXZSurfaceLine2, job.SoilGeometryProbability.SoilProfile, waterLevel);
// job.BaseFileName = calculator.FilenameCalculation;
@@ -360,7 +362,7 @@
// else
// {
// throw new RWScenariosCalculationException(String.Format("Uplift criterion not defined for location {0}", job.Location.Name));
-// } ##Bka
+// } //##Bka
}
@@ -369,18 +371,15 @@
string calculationName;
switch (job.PipingModelOption)
{
- case PipingModelType.Sellmeijer : calculationName = String.Format("Calc(Sellmeijer)_Loc({0})_Pro({1}))",
- job.Location.Name, job.SoilGeometryProbability.SoilProfile.Name);
+ case PipingModelType.SellmeijerVnk : calculationName = String.Format("Calc(SellmeijerVnk)_Loc({0})_Pro({1}))",
+ job.LocationName, job.SoilProfileName);
break;
- case PipingModelType.Sellmeijer2Forces: calculationName = String.Format("Calc(Sellmeijer2Forces)_Loc({0})_Pro({1}))",
- job.Location.Name, job.SoilGeometryProbability.SoilProfile.Name);
- break;
case PipingModelType.Sellmeijer4Forces: calculationName = String.Format("Calc(Sellmeijer4Forces)_Loc({0})_Pro({1}))",
- job.Location.Name, job.SoilGeometryProbability.SoilProfile.Name);
+ job.LocationName, job.SoilProfileName);
break;
// Set Sellmeijer4Forces as default.
default: calculationName = String.Format("Calc(Sellmeijer4Forces)_Loc({0})_Pro({1}))",
- job.Location.Name, job.SoilGeometryProbability.SoilProfile.Name);
+ job.LocationName, job.SoilProfileName);
break;
}
calculationName = Regex.Replace(calculationName, @"[\\\/:\*\?""'<>|.]", "_");
@@ -398,7 +397,7 @@
// PipingCalculator calculator;
// switch (job.PipingModelOption)
// {
-// case PipingModelType.Sellmeijer: calculator = new PipingCalculatorSellmeijer(modelParametersForPLLines,
+// case PipingModelType.SellmeijerVnk: calculator = new PipingCalculatorSellmeijer(modelParametersForPLLines,
// 1.0, null, null, null, job.Location.ModelFactors.UpliftCriterionPiping.Value);
// break;
// case PipingModelType.Sellmeijer2Forces: calculator = new PipingCalculatorSellmeijer2Forces(modelParametersForPLLines,
@@ -422,54 +421,54 @@
///
private void ProcessJobStability(RWScenarioProfileResult job)
{
-// StabilityCalculation calculator = new StabilityCalculation();
-//
-// lock (runningJobs)
-// {
-// runningJobs[calculator] = job;
-// }
-//
-// calculator.MStabExePath = this.MStabExePath;
-// calculator.RegisterSendMessage(this.SendStabilityMessage);
-//
-// string soilDatabaseName = job.Location.SoildatabaseName;
+ StabilityCalculation calculator = new StabilityCalculation();
+
+ lock (runningJobs)
+ {
+ runningJobs[calculator] = job;
+ }
+
+ // calculator.MStabExePath = this.MStabExePath;
+ calculator.RegisterSendMessage(this.SendStabilityMessage);
+
+ string soilDatabaseName = job.Location.SoildatabaseName;
// DamFailureMechanismeCalculationSpecification damCalculation =
// calculator.GetSpecification(this.evaluationJob.DikeName, soilDatabaseName, job.Location, new SoilGeometry(job.SoilGeometryProbability.SoilProfile, null),
// (MStabModelType)job.MstabModelOption, job.LoadSituation, job.DikeDrySensitivity, job.HydraulicShortcutType, MStabParameters);
//
// calculator.SaveToFile(damCalculation.FailureMechanismeParamatersMStab);
-//
+
// string inputFile = damCalculation.FailureMechanismeParamatersMStab.MStabParameters.ProjectFileName;
//
// job.BaseFileName = inputFile.Replace(DamProject.ProjectWorkingPath, @"").Replace(".sti", "");
-//
+
// calculator.Load(inputFile);
-// job.CalculationResult = calculator.Run();
-//
-// if (job.CalculationResult == CalculationResult.Succeeded)
-// {
-// string results = "";
-//
-// job.CalculationResult = calculator.GetResults(ref results);
-// XmlDeserializer deserializer = new XmlDeserializer();
+ job.CalculationResult = calculator.Run();
+
+ if (job.CalculationResult == CalculationResult.Succeeded)
+ {
+ string results = "";
+
+ job.CalculationResult = calculator.GetResults(ref results);
+ //XmlDeserializer deserializer = new XmlDeserializer();
// RWResult result = (RWResult)deserializer.XmlDeserializeFromString(results, typeof(RWResult));
-//
+
// job.SafetyFactor = result.SafetyFactor;
// job.ProbabilityOfFailure = result.ProbabilityOfFailure;
// job.RwResultType = result.RwResultType;
// job.CalculationResult = result.CalculationResult;
-// }
-// else
-// {
+ }
+ else
+ {
// job.RwResultType = (damCalculation.FailureMechanismeParamatersMStab.MStabParameters.IsProbabilistic ? RWResultType.ProbabilityOfFailure : RWResultType.SafetyFactor);
-// job.SafetyFactor = double.NaN;
-// job.ProbabilityOfFailure = double.NaN;
-// }
-//
-// lock (runningJobs)
-// {
-// runningJobs.Remove(calculator);
-// } ##Bka
+ job.SafetyFactor = double.NaN;
+ job.ProbabilityOfFailure = double.NaN;
+ }
+
+ lock (runningJobs)
+ {
+ runningJobs.Remove(calculator);
+ }
}
///
@@ -483,8 +482,7 @@
if (logMessage.Subject != null)
{
RWScenarioProfileResult job = (RWScenarioProfileResult)runningJobs[(ICalculation)logMessage.Subject];
- logMessage.Subject = job.Location;
- // logMessage.Detail = job.SoilGeometryProbability.SoilProfile.Name;
+ logMessage.Subject = job.Location;
}
}
@@ -509,7 +507,7 @@
// scenarios were succesfully created, so results are available
foreach (RWScenarioProfileResult job in tasks)
{
- if (job.Location.Name.Equals(location.Name))
+ if (job.LocationName.Equals(location.Name))
{
RWScenarioResult scenarioResult = null;
foreach (RWScenarioResult existingScenarioResult in scenariosResult.RWScenarioResults)