From b3e98b4f0ec8d570c276028dad76c20ce9972b1d Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Wed, 13 Jul 2016 15:54:09 +0200 Subject: [PATCH] angulargear: correct exception with efficiency fallback, fullloadcurve: using DistinctBy now --- .../AbstractSimulationDataAdapter.cs | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs index 9c0a8d1a2e..d13b131401 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs @@ -198,7 +198,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter case AngularGearType.SeparateAngularGear: try { angularGear.AngularGear.LossMap = TransmissionLossMap.Create(data.LossMap, data.Ratio, "AngularGear"); - } catch (InvalidFileFormatException) { + } catch (VectoException) { if (useEfficiencyFallback) angularGear.AngularGear.LossMap = TransmissionLossMap.Create(data.Efficiency, data.Ratio, "AngularGear"); else { @@ -211,9 +211,12 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter case AngularGearType.LossesIncludedInGearbox: case AngularGearType.None: angularGear.AngularGear.Ratio = 1; + // if no angular gear or already included: Create LossMap with 100% efficiency + angularGear.AngularGear.LossMap = TransmissionLossMap.Create(1, angularGear.AngularGear.Ratio, + "Zero Losses AngularGear"); break; default: - throw new ArgumentOutOfRangeException("data", "Unknown AngularGearType."); + throw new ArgumentOutOfRangeException("data", "Unknown AngularGear Type."); } return angularGear; } catch (Exception e) { @@ -236,7 +239,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var entries = gearCurve.FullLoadEntries.Concat(engineCurve.FullLoadEntries) .OrderBy(x => x.EngineSpeed) - .Distinct(new FullLoadEntryEqualityComparer()) + .DistinctBy((x, y) => x.EngineSpeed.Value().IsEqual(y.EngineSpeed.Value())) .Select(x => new FullLoadCurve.FullLoadCurveEntry { EngineSpeed = x.EngineSpeed, TorqueFullLoad = @@ -251,18 +254,5 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter }; return flc; } - - internal class FullLoadEntryEqualityComparer : IEqualityComparer<FullLoadCurve.FullLoadCurveEntry> - { - public bool Equals(FullLoadCurve.FullLoadCurveEntry x, FullLoadCurve.FullLoadCurveEntry y) - { - return x.EngineSpeed.Value().IsEqual(y.EngineSpeed.Value()); - } - - public int GetHashCode(FullLoadCurve.FullLoadCurveEntry obj) - { - return obj.EngineSpeed.Value().GetHashCode(); - } - } } } \ No newline at end of file -- GitLab