diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb index 97a83102913813ce33a974cd8c99a29975983961..b42ea57526f0b915dcbddf8d245f0e5968f80048 100644 --- a/VECTO/GUI/MainForm.vb +++ b/VECTO/GUI/MainForm.vb @@ -48,6 +48,7 @@ Imports TUGraz.VectoCommon.Resources Imports TUGraz.VectoCommon.Utils Imports TUGraz.VectoCore Imports TUGraz.VectoCore.InputData.FileIO.XML +Imports TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory Imports TUGraz.VectoCore.Models.SimulationComponent.Data Imports TUGraz.VectoCore.OutputData Imports TUGraz.VectoCore.OutputData.FileIO @@ -58,7 +59,7 @@ Imports TUGraz.VectoCore.Utils ''' </summary> ''' <remarks></remarks> - Public Class MainForm +Public Class MainForm Private _jobListView As FileListView Private _cycleListView As FileListView @@ -76,7 +77,7 @@ Imports TUGraz.VectoCore.Utils #Region "SLEEP Control - Prevent sleep while VECTO is running" - Private Declare Function SetThreadExecutionState Lib "kernel32"(esFlags As Long) As Long + Private Declare Function SetThreadExecutionState Lib "kernel32" (esFlags As Long) As Long Private Shared Sub AllowSleepOff() #If Not PLATFORM = "x86" Then @@ -117,7 +118,7 @@ Imports TUGraz.VectoCore.Utils JobfileFileBrowser = New FileBrowser("vecto") VehicleFileBrowser = New FileBrowser("vveh") VehicleXMLFileBrowser = New FileBrowser("vveh_xml") - ManRXMLFileBrowser = new FileBrowser("xml") + ManRXMLFileBrowser = New FileBrowser("xml") FuelConsumptionMapFileBrowser = New FileBrowser("vmap") DrivingCycleFileBrowser = New FileBrowser("vdri") FullLoadCurveFileBrowser = New FileBrowser("vfld") @@ -137,7 +138,7 @@ Imports TUGraz.VectoCore.Utils CrossWindCorrectionFileBrowser = New FileBrowser("vcdx") ElectricMotorFileBrowser = New FileBrowser("vem") REESSFileBrowser = New FileBrowser("vreess") - EmADCLossMapFileBrowser = new FileBrowser("vtlm") + EmADCLossMapFileBrowser = New FileBrowser("vtlm") DriverDecisionFactorVelocityDropFileBrowser = New FileBrowser("DfVelocityDrop") DriverDecisionFactorTargetSpeedFileBrowser = New FileBrowser("DfTargetSpeed") DriverDecisionFactorVelocityDropFileBrowser.Extensions = New String() {"csv"} @@ -147,12 +148,12 @@ Imports TUGraz.VectoCore.Utils ElectricMachineMaxTorqueFileBrowser = New FileBrowser("vemp") ElectricMachineEfficiencyMapFileBrowser = New FileBrowser("vemo") HCUFileBrowser = New FileBrowser("vhctl") - BusAuxFileBrowser = new FileBrowser(".vaux") - BusAuxCompressorMapFileBrowser = new FileBrowser(".acmp") - BatteryMaxCurrentCurveFileBrowser = new FileBrowser("vimax") + BusAuxFileBrowser = New FileBrowser(".vaux") + BusAuxCompressorMapFileBrowser = New FileBrowser(".acmp") + BatteryMaxCurrentCurveFileBrowser = New FileBrowser("vimax") BatteryInternalResistanceCurveFileBrowser = New FileBrowser("vbatr") BatterySoCCurveFileBrowser = New FileBrowser("vbatv") - PropulsionTorqueLimitFileBrowser = new FileBrowser("vtqp") + PropulsionTorqueLimitFileBrowser = New FileBrowser("vtqp") ModalResultsFileBrowser = New FileBrowser("vmod") @@ -175,25 +176,25 @@ Imports TUGraz.VectoCore.Utils TransmissionLossMapFileBrowser.Extensions = New String() {"vtlm"} PtoLossMapFileBrowser.Extensions = New String() {"vptol"} PTODrivingCycleStandstillFileBrowser.Extensions = New String() {"vptoc"} - PTODrivingCycleDrivingFileBrowser.Extensions = New String() { "vptor" } + PTODrivingCycleDrivingFileBrowser.Extensions = New String() {"vptor"} TorqueConverterFileBrowser.Extensions = New String() {"vtcc"} TorqueConverterShiftPolygonFileBrowser.Extensions = New String() {"vgbs"} CrossWindCorrectionFileBrowser.Extensions = New String() {"vcdv", "vcdb"} ElectricMotorFileBrowser.Extensions = New String() {"vem"} REESSFileBrowser.Extensions = New String() {"vreess"} - EmADCLossMapFileBrowser.Extensions = new String(){"vtlm"} + EmADCLossMapFileBrowser.Extensions = New String() {"vtlm"} ElectricMachineDragTorqueFileBrowser.Extensions = New String() {"vemd"} ElectricMachineMaxTorqueFileBrowser.Extensions = New String() {"vemp"} ElectricMachineEfficiencyMapFileBrowser.Extensions = New String() {"vemo"} - BatteryMaxCurrentCurveFileBrowser.Extensions = new String() {"vimax"} + BatteryMaxCurrentCurveFileBrowser.Extensions = New String() {"vimax"} BatteryInternalResistanceCurveFileBrowser.Extensions = New String() {"vbatr"} BatterySoCCurveFileBrowser.Extensions = New String() {"vbatv"} HCUFileBrowser.Extensions = New String() {"vhctl"} - BusAuxFileBrowser.Extensions = New String(){"vaux"} - BusAuxCompressorMapFileBrowser.Extensions = new String(){"acmp"} - PropulsionTorqueLimitFileBrowser.Extensions = new String(){"vtqp"} + BusAuxFileBrowser.Extensions = New String() {"vaux"} + BusAuxCompressorMapFileBrowser.Extensions = New String() {"acmp"} + PropulsionTorqueLimitFileBrowser.Extensions = New String() {"vtqp"} ModalResultsFileBrowser.Extensions = New String() {"vmod"} End Sub @@ -268,17 +269,17 @@ Imports TUGraz.VectoCore.Utils 'FileLists - _jobListView = New FileListView(path.Combine(MyConfPath, CONFIG_JOBLIST_FILE)) + _jobListView = New FileListView(Path.Combine(MyConfPath, CONFIG_JOBLIST_FILE)) _jobListView.LVbox = LvGEN - _cycleListView = New FileListView(path.Combine(MyConfPath, CONFIG_CYCLELIST_FILE)) + _cycleListView = New FileListView(Path.Combine(MyConfPath, CONFIG_CYCLELIST_FILE)) _jobListView.LoadList() LoadOptions() 'Resize columns ... after Loading the @file-lists - LvGEN.Columns(1).Width = - 2 - LvMsg.Columns(2).Width = - 2 + LvGEN.Columns(1).Width = -2 + LvMsg.Columns(2).Width = -2 'Initialize BackgroundWorker @@ -540,7 +541,7 @@ Imports TUGraz.VectoCore.Utils lastindx = LvGEN.SelectedIndices(LvGEN.SelectedItems.Count - 1) - For i = UBound(selIx) To 0 Step - 1 + For i = UBound(selIx) To 0 Step -1 LvGEN.Items.RemoveAt(selIx(i)) Next @@ -609,14 +610,14 @@ Imports TUGraz.VectoCore.Utils Dim p As Integer Dim f As Integer Dim fList As String() - Dim fListDim As Integer = - 1 + Dim fListDim As Integer = -1 Dim listViewItem As ListViewItem 'If VECTO runs: Cancel operation (because Mode-change during calculation is not very clever) If VectoWorkerV3.IsBusy Then Exit Sub pDim = UBound(path) - ReDim fList(0) 'um Nullverweisausnahme-Warnung zu verhindern + ReDim fList(0) 'um Nullverweisausnahme-Warnung zu verhindern '******************************************* Begin Update '******************************************* LvGEN.BeginUpdate() @@ -658,13 +659,13 @@ Imports TUGraz.VectoCore.Utils End If 'Otherwise: Add File (without WorkDir) - listViewItem = New ListViewItem(path(p)) 'fFileWD(Path(p))) + listViewItem = New ListViewItem(path(p)) 'fFileWD(Path(p))) listViewItem.SubItems.Add(" ") listViewItem.Checked = True listViewItem.Selected = True LvGEN.Items.Add(listViewItem) listViewItem.EnsureVisible() - lbFound: +lbFound: Next LvGEN.EndUpdate() @@ -936,8 +937,8 @@ Imports TUGraz.VectoCore.Utils Status("Launching VECTO ...") JobFileList.Clear() JobFileList.AddRange( - From listViewItem As ListViewItem In LvGEN.CheckedItems.Cast (Of ListViewItem)() - Select fFileRepl = FileRepl(listViewItem.SubItems(0).Text)) + From listViewItem As ListViewItem In LvGEN.CheckedItems.Cast(Of ListViewItem)() + Select fFileRepl = FileRepl(listViewItem.SubItems(0).Text)) SetOptions() Cfg.Save() @@ -977,7 +978,7 @@ Imports TUGraz.VectoCore.Utils mode = ExecutionMode.Declaration Else mode = ExecutionMode.Engineering - Physics.AirDensity = Cfg.AirDensity.SI (Of KilogramPerCubicMeter)() + Physics.AirDensity = Cfg.AirDensity.SI(Of KilogramPerCubicMeter)() End If 'dictionary of run-identifiers to fileWriters (used for output directory of modfile) @@ -998,16 +999,16 @@ Imports TUGraz.VectoCore.Utils Case VectoCore.Configuration.Constants.FileExtensions.VectoJobFile input = JSONInputDataFactory.ReadJsonJob(jobFile) Case ".xml" - Dim xDocument As XDocument = xDocument.Load(jobFile) + Dim xDocument As XDocument = XDocument.Load(jobFile) Dim rootNode As String = If(xDocument Is Nothing, "", xDocument.Root.Name.LocalName) - Dim kernel as IKernel = New StandardKernel(new VectoNinjectModule) - Dim xmlInputReader as IXMLInputDataReader = kernel.Get(Of IXMLInputDataReader) + Dim kernel As IKernel = New StandardKernel(New VectoNinjectModule) + Dim xmlInputReader As IXMLInputDataReader = kernel.Get(Of IXMLInputDataReader) Select Case rootNode Case XMLNames.VectoInputEngineering input = xmlInputReader.CreateEngineering(jobFile) Case XMLNames.VectoInputDeclaration Using reader As XmlReader = XmlReader.Create(jobFile) - input = xmlInputReader.CreateDeclaration(reader) + input = xmlInputReader.CreateDeclaration(reader) End Using End Select End Select @@ -1023,7 +1024,7 @@ Imports TUGraz.VectoCore.Utils Dim outFile As String = GetOutputDirectory(jobFile) Dim fileWriter As FileOutputWriter = New FileOutputWriter(outFile) - Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, input, fileWriter) + Dim runsFactory As SimulatorFactory = SimulatorFactory.CreateSimulatorFactory(mode, input, fileWriter) runsFactory.WriteModalResults = Cfg.ModOut runsFactory.ModalResults1Hz = Cfg.Mod1Hz runsFactory.Validate = cbValidateRunData.Checked diff --git a/VECTO3GUI/ViewModel/Impl/JoblistViewModel.cs b/VECTO3GUI/ViewModel/Impl/JoblistViewModel.cs index c585f453b3cedc8375a678434285db1865248911..52a9163b9cddf4f2901d4de46ae1e3d655d24d88 100644 --- a/VECTO3GUI/ViewModel/Impl/JoblistViewModel.cs +++ b/VECTO3GUI/ViewModel/Impl/JoblistViewModel.cs @@ -28,6 +28,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -932,13 +933,12 @@ namespace VECTO3GUI.ViewModel.Impl } var fileWriter = new FileOutputWriter(GetOutputDirectory(fullFileName)); - var runsFactory = new SimulatorFactory(mode, input, fileWriter) { - WriteModalResults = WriteModData, - ModalResults1Hz = WriteModData1Hz, - Validate = ValidateData, - ActualModalData = WriteActualModData, - SerializeVectoRunData = WriteModelData - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, input, fileWriter); + runsFactory.WriteModalResults = WriteModData; + runsFactory.ModalResults1Hz = WriteModData1Hz; + runsFactory.Validate = ValidateData; + runsFactory.ActualModalData = WriteActualModData; + runsFactory.SerializeVectoRunData = WriteModelData; foreach (var runId in jobContainer.AddRuns(runsFactory)) { fileWriters.Add(runId, fileWriter); } diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs index 9c39912ea0b77d2a56c07444770f97ad86cfbc4f..21f936fb99193c2107f54669469e4da0b438a575 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs @@ -28,6 +28,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Utils; @@ -517,14 +518,12 @@ namespace VECTO3GUI2020.ViewModel.Implementation } var fileWriter = new FileOutputWriter(GetOutputDirectory(fullFileName)); - var runsFactory = new SimulatorFactory(mode, input, fileWriter) - { - WriteModalResults = Settings.Default.WriteModalResults, - ModalResults1Hz = Settings.Default.ModalResults1Hz, - Validate = Settings.Default.Validate, - ActualModalData = Settings.Default.ActualModalData, - SerializeVectoRunData = Settings.Default.SerializeVectoRunData, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, input, fileWriter); + runsFactory.WriteModalResults = Settings.Default.WriteModalResults; + runsFactory.ModalResults1Hz = Settings.Default.ModalResults1Hz; + runsFactory.Validate = Settings.Default.Validate; + runsFactory.ActualModalData = Settings.Default.ActualModalData; + runsFactory.SerializeVectoRunData = Settings.Default.SerializeVectoRunData; var stopwatch = new Stopwatch(); stopwatch.Start(); diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index a243599e2655138e5bde6392c60217abc0445417..6ef16df4754cfe923802acce507e565b1c0809c3 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -20,6 +20,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Utils; @@ -216,7 +217,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation var inputData = new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); var jobContainer = new JobContainer(new NullSumWriter()); diff --git a/VectoConsole/Program.cs b/VectoConsole/Program.cs index 0df22028197a780a4d8dfafa519711cafb79cd18..50155f95b51c7a8408d6658b0b981fafc62c6f27 100644 --- a/VectoConsole/Program.cs +++ b/VectoConsole/Program.cs @@ -50,6 +50,7 @@ using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Utils; @@ -227,12 +228,11 @@ Examples: } fileWriter = new FileOutputWriter(file); - var runsFactory = new SimulatorFactory(mode, dataProvider, fileWriter) { - ModalResults1Hz = args.Contains("-1Hz"), - WriteModalResults = args.Contains("-mod"), - ActualModalData = args.Contains("-act"), - Validate = !args.Contains("-nv"), - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = args.Contains("-1Hz"); + runsFactory.WriteModalResults = args.Contains("-mod"); + runsFactory.ActualModalData = args.Contains("-act"); + runsFactory.Validate = !args.Contains("-nv"); _jobContainer.AddRuns(runsFactory); } diff --git a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactoryFactory.cs b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactoryFactory.cs index a224c48515fe629561d04cad86cf6af75a174e65..8e8617343ecec3c4db78f9a91822244d6fc61316 100644 --- a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactoryFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactoryFactory.cs @@ -38,7 +38,13 @@ namespace TUGraz.VectoCore.Models.Simulation public interface ISimulatorFactoryFactory { ISimulatorFactory Factory( - ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, - IDeclarationReport declarationReport = null, IVTPReport vtpReport = null, bool validate = true); + ExecutionMode mode, IInputDataProvider dataProvider, + IOutputDataWriter writer); + + ISimulatorFactory Factory(IInputDataProvider dataProvider, + IOutputDataWriter writer, + IDeclarationReport declarationReport = null, + IVTPReport vtpReport = null, + bool validate = true); } } diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs deleted file mode 100644 index cf6112ccc43e7c09e50eb9f442fa2c8936989829..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ /dev/null @@ -1,472 +0,0 @@ -/* -* This file is part of VECTO. -* -* Copyright © 2012-2019 European Union -* -* Developed by Graz University of Technology, -* Institute of Internal Combustion Engines and Thermodynamics, -* Institute of Technical Informatics -* -* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved -* by the European Commission - subsequent versions of the EUPL (the "Licence"); -* You may not use VECTO except in compliance with the Licence. -* You may obtain a copy of the Licence at: -* -* https://joinup.ec.europa.eu/community/eupl/og_page/eupl -* -* Unless required by applicable law or agreed to in writing, VECTO -* distributed under the Licence is distributed on an "AS IS" basis, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the Licence for the specific language governing permissions and -* limitations under the Licence. -* -* Authors: -* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology -* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology -* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology -* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology -* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology -* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology -*/ - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading; -using System.Xml; -using Castle.DynamicProxy.Generators.Emitters.SimpleAST; -using Newtonsoft.Json; -using Ninject; -using TUGraz.VectoCommon.BusAuxiliaries; -using TUGraz.VectoCommon.Exceptions; -using TUGraz.VectoCommon.InputData; -using TUGraz.VectoCommon.Models; -using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.InputData; -using TUGraz.VectoCore.InputData.FileIO.XML; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; -using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; -using TUGraz.VectoCore.InputData.Reader.Impl; -using TUGraz.VectoCore.Models.Declaration; -using TUGraz.VectoCore.Models.Simulation.Data; -using TUGraz.VectoCore.Models.SimulationComponent.Data; -using TUGraz.VectoCore.OutputData; -using TUGraz.VectoCore.OutputData.FileIO; -using TUGraz.VectoCore.OutputData.ModFilter; -using TUGraz.VectoCore.OutputData.XML; -using Formatting = Newtonsoft.Json.Formatting; - -namespace TUGraz.VectoCore.Models.Simulation.Impl -{ - public class SimulatorFactory : LoggingObject, ISimulatorFactory - { - private static int _jobNumberCounter; - - private readonly ExecutionMode _mode; - - private Func<ISimulatorFactory> _followingSimulatorFactoryCreator = null; - - private bool _simulate = true; - - public ISimulatorFactory FollowUpSimulatorFactory - { - get => CreateFollowUpSimulatorFactory ? _followingSimulatorFactoryCreator?.Invoke() : null; - } - - public bool CreateFollowUpSimulatorFactory = false; - - - - - public SimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer) : this(mode, dataProvider, writer, null, null, true) - { - - } - - public SimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, - IDeclarationReport declarationReport = null, IVTPReport vtpReport = null, bool validate = true) - { - System.Diagnostics.Debug.WriteLine("Created Simulator Factory"); - Log.Info("########## VectoCore Version {0} ##########", Assembly.GetExecutingAssembly().GetName().Version); - JobNumber = Interlocked.Increment(ref _jobNumberCounter); - _mode = mode; - ReportWriter = writer; - Validate = validate; - - ThreadPool.GetMinThreads(out var workerThreads, out var completionThreads); - if (workerThreads < 12) { - workerThreads = 12; - } - ThreadPool.SetMinThreads(workerThreads, completionThreads); - - switch (mode) { - case ExecutionMode.Declaration: - CreateDeclarationDataReader(dataProvider, declarationReport, vtpReport); - break; - case ExecutionMode.Engineering: - CreateEngineeringDataReader(dataProvider); - break; - default: - throw new VectoException("Unkown factory mode in SimulatorFactory: {0}", mode); - } - } - - private void CreateDeclarationDataReader(IInputDataProvider dataProvider, IDeclarationReport declarationReport, IVTPReport vtpReport) - { - if (dataProvider is IVTPDeclarationInputDataProvider vtpProvider) { - var report = vtpReport ?? new XMLVTPReport(ReportWriter); - if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsLorry()) { - DataReader = new DeclarationVTPModeVectoRunDataFactoryLorries(vtpProvider, report); - } - if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsBus()) { - DataReader = new DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider, report); - } - return; - } - - if (dataProvider is ISingleBusInputDataProvider) { - var singleBus = dataProvider as ISingleBusInputDataProvider; - var report = declarationReport ?? new XMLDeclarationReport(ReportWriter); - DataReader = new DeclarationModeSingleBusVectoRunDataFactory(singleBus, report); - return; - } - if (dataProvider is IDeclarationInputDataProvider declDataProvider) { - if (declDataProvider.JobInputData.Vehicle.VehicleCategory.IsLorry()) { - var report = declarationReport ?? new XMLDeclarationReport(ReportWriter); - DataReader = new DeclarationModeTruckVectoRunDataFactory(declDataProvider, report); - return; - } - - switch (declDataProvider.JobInputData.Vehicle.VehicleCategory) { - case VehicleCategory.HeavyBusCompletedVehicle: - var reportCompleted = declarationReport ?? - new XMLDeclarationReportCompletedVehicle(ReportWriter, - declDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle) { - PrimaryVehicleReportInputData = declDataProvider.PrimaryVehicleData, - }; - DataReader = new DeclarationModeCompletedBusVectoRunDataFactory(declDataProvider, reportCompleted); - return; - case VehicleCategory.HeavyBusPrimaryVehicle: - var reportPrimary = declarationReport ?? - new XMLDeclarationReportPrimaryVehicle(ReportWriter, - declDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle); - DataReader = new DeclarationModePrimaryBusVectoRunDataFactory(declDataProvider, reportPrimary); - return; - default: - System.Diagnostics.Debug.Assert(false); - break; - } - } - - if (dataProvider is IMultistageVIFInputData multistageVifInputData) { - //ToDo FK: check if data completed == true && final - var inputComplete = multistageVifInputData.MultistageJobInputData.JobInputData.InputComplete; - var declType = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage - ?.Vehicle.VehicleDeclarationType; - var final = declType == VehicleDeclarationType.final; - var exempted = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage? - .Vehicle.ExemptedVehicle == true; - - - if (multistageVifInputData.VehicleInputData == null) { // eigener writer für in-memory - var reportCompleted = new XMLDeclarationReportCompletedVehicle(ReportWriter, true) { - PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle, - }; - DataReader = new DeclarationModeCompletedMultistageBusVectoRunDataFactory( - multistageVifInputData.MultistageJobInputData, - reportCompleted); - if (!((final || exempted) && inputComplete)) { - _simulate = false; - //_followingSimulatorFactoryCreator = () => { - // var container = new StandardKernel( - // new VectoNinjectModule() - // ); - // var inputDataReader = container.Get<IXMLInputDataReader>(); - - // var mode = _mode; - // var inputData = - // inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter) - // .XMLMultistageReportFileName); - - // return new SimulatorFactory( - // mode: _mode, - // dataProvider: new XMLDeclarationVIFInputData( - // inputData as IMultistageBusInputDataProvider, null), - // writer: ReportWriter, - // declarationReport: reportCompleted, - // vtpReport: vtpReport, - // validate: Validate); - - //}; - } - - } else { - var report = declarationReport ?? new XMLDeclarationReportMultistageBusVehicle(ReportWriter); - DataReader = new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report); - - _followingSimulatorFactoryCreator = () => { - var container = new StandardKernel( - new VectoNinjectModule() - ); - var inputDataReader = container.Get<IXMLInputDataReader>(); - - var mode = _mode; - var inputData = - inputDataReader.CreateDeclaration( - XmlReader.Create(ReportWriter.MultistageXmlReport.ToString().ToStream())); - //inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter) - // .XMLMultistageReportFileName); - return new SimulatorFactory(_mode, new XMLDeclarationVIFInputData(inputData as IMultistageBusInputDataProvider, null), ReportWriter, report, vtpReport, Validate) { - - }; - }; - - } - return; - } - - if (dataProvider is IMultistagePrimaryAndStageInputDataProvider multiStagePrimaryAndStageInputData) - { - System.Diagnostics.Debug.Assert(multiStagePrimaryAndStageInputData.PrimaryVehicle.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle); - - var tempOutputWriter = new TempFileOutputWriter(ReportWriter, ReportType.DeclarationReportManufacturerXML); - var originalReportWriter = ReportWriter; - ReportWriter = tempOutputWriter; - - var tempPrimaryReport = new XMLDeclarationReportPrimaryVehicle(tempOutputWriter, true); - - DataReader = new DeclarationModePrimaryBusVectoRunDataFactory(multiStagePrimaryAndStageInputData.PrimaryVehicle, tempPrimaryReport); - - var reportPrimary = new XMLDeclarationReportPrimaryVehicle(ReportWriter, - true); - - CreateFollowUpSimulatorFactory = true; - _followingSimulatorFactoryCreator = (() => { - //replace with dependency injection - var container = new StandardKernel( - new VectoNinjectModule() - ); - try { - var inputDataReader = container.Get<IXMLInputDataReader>(); - var primaryInputData = inputDataReader.CreateDeclaration(tempOutputWriter - .GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()); - //var primaryInputData = inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter).XMLPrimaryVehicleReportName); - var vifInputData = new XMLDeclarationVIFInputData( - primaryInputData as IMultistageBusInputDataProvider, - multiStagePrimaryAndStageInputData.StageInputData); - - var manStagesCount = - vifInputData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? -1; - - originalReportWriter.NumberOfManufacturingStages = manStagesCount; - var factory = new SimulatorFactory(_mode, - vifInputData, originalReportWriter, - null, - vtpReport, - Validate) { - CreateFollowUpSimulatorFactory = true, - }; - return factory; - } catch (Exception ex) { - Log.Error($"Failed to create additional Simulation run: {ex.Message}"); - return null; - } - }); - return; - } - - - throw new VectoException("Unknown InputData for Declaration Mode!"); - } - - - private void CreateEngineeringDataReader(IInputDataProvider dataProvider) - { - if (dataProvider is IVTPEngineeringInputDataProvider) { - var vtpProvider = dataProvider as IVTPEngineeringInputDataProvider; - if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsLorry()) { - DataReader = new EngineeringVTPModeVectoRunDataFactoryLorries(vtpProvider); - } - if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsBus()) { - DataReader = new EngineeringVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider); - } - return; - } - if (dataProvider is IEngineeringInputDataProvider) { - var engDataProvider = dataProvider as IEngineeringInputDataProvider; - if (engDataProvider.JobInputData.JobType == VectoSimulationJobType.EngineOnlySimulation) { - DataReader = new EngineOnlyVectoRunDataFactory(engDataProvider); - } else { - DataReader = new EngineeringModeVectoRunDataFactory(engDataProvider); - } - return; - } - throw new VectoException("Unknown InputData for Engineering Mode!"); - } - - public bool Validate { get; set; } - - public IVectoRunDataFactory DataReader { get; private set; } - - public SummaryDataContainer SumData { get; set; } - - public IOutputDataWriter ReportWriter { get; private set; } - - public int JobNumber { get; set; } - - public bool WriteModalResults { get; set; } - public bool ModalResults1Hz { get; set; } - public bool ActualModalData { get; set; } - - public bool SerializeVectoRunData { get; set; } - - /// <summary> - /// Creates powertrain and initializes it with the component's data. - /// </summary> - /// <returns>new VectoRun Instance</returns> - public IEnumerable<IVectoRun> SimulationRuns() - { - var i = 0; - var warning1Hz = false; - if (!_simulate) { - yield break; - } - foreach (var data in DataReader.NextRun()) { - var current = i++; - var d = data; - data.JobRunId = current; - yield return data.Exempted || data.MultistageRun ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz); - } - } - - private IVectoRun GetExemptedRun(VectoRunData data) - { - if (data.Report != null) { - data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data); - } - return new ExemptedRun(new ExemptedRunContainer(data.ExecutionMode) { RunData = data }, modData => { - if (data.Report != null) { - data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData); - } - }); - } - - private IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz) - { - var addReportResult = PrepareReport(data); - if (!data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz && !warning1Hz) { - Log.Error("Output filter for 1Hz results is only available for distance-based cycles!"); - warning1Hz = true; - } - var fuels = data.EngineData != null ? data.EngineData.Fuels.Select(x => x.FuelData).ToList() : new List<IFuelProperties>(); - IModalDataContainer modContainer = - new ModalDataContainer( - data, ReportWriter, - _mode == ExecutionMode.Declaration ? addReportResult : null, - GetModDataFilter(data)) { - WriteModalResults = _mode != ExecutionMode.Declaration || WriteModalResults - }; - - - // TODO: MQ 20200410 - Remove for official release! - if (SerializeVectoRunData) { - File.WriteAllText( - Path.Combine( - (ReportWriter as FileOutputWriter)?.BasePath ?? "", $"{data.JobName}_{data.Cycle.Name}{data.ModFileSuffix}.json"), - JsonConvert.SerializeObject(data, Formatting.Indented)); - } - - var builder = new PowertrainBuilder( - modContainer, modData => { - if (SumData != null) { - SumData.Write(modData, JobNumber, current, d); - } - }); - - var run = GetVectoRun(data, builder); - - if (Validate) { - ValidateVectoRunData( - run, data.JobType, data.ElectricMachinesData.FirstOrDefault()?.Item1, data.GearboxData?.Type, - data.Mission != null && data.Mission.MissionType.IsEMS()); - } - return run; - } - - private IModalDataFilter[] GetModDataFilter(VectoRunData data) - { - var modDataFilter = ModalResults1Hz - ? new IModalDataFilter[] { new ModalData1HzFilter() } - : null; - - if (ActualModalData) { - modDataFilter = new IModalDataFilter[] { new ActualModalDataFilter(), }; - } - return data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz || ActualModalData ? modDataFilter : null; - } - - private void ValidateVectoRunData(VectoRun run, VectoSimulationJobType jobType, PowertrainPosition? emPosition, GearboxType? gearboxtype, bool isEms) - { - var validationErrors = run.Validate(_mode, jobType, emPosition, gearboxtype, isEms); - if (validationErrors.Any()) { - throw new VectoException("Validation of Run-Data Failed: " + - string.Join("\n", validationErrors.Select(r => r.ErrorMessage + string.Join("; ", r.MemberNames)))); - } - } - - private static VectoRun GetVectoRun(VectoRunData data, PowertrainBuilder builder) - { - VectoRun run; - switch (data.Cycle.CycleType) { - case CycleType.DistanceBased: - if ((data.SimulationType & SimulationType.DistanceCycle) == 0) { - throw new VectoException("Distance-based cycle can not be simulated in {0} mode", data.SimulationType); - } - run = new DistanceRun(builder.Build(data)); - break; - case CycleType.EngineOnly: - if ((data.SimulationType & SimulationType.EngineOnly) == 0) { - throw new VectoException("Engine-only cycle can not be simulated in {0} mode", data.SimulationType); - } - run = new TimeRun(builder.Build(data)); - break; - case CycleType.VTP: - if ((data.SimulationType & SimulationType.VerificationTest) == 0) { - throw new VectoException("VTP-cycle can not be simulated in {0} mode", data.SimulationType); - } - run = new TimeRun(builder.Build(data)); - break; - - case CycleType.PWheel: - case CycleType.MeasuredSpeed: - case CycleType.MeasuredSpeedGear: - if ((data.SimulationType & (SimulationType.PWheel | SimulationType.MeasuredSpeedCycle)) == 0) { - throw new VectoException("{1}-cycle can not be simulated in {0} mode", data.SimulationType, data.Cycle.CycleType); - } - run = new TimeRun(builder.Build(data)); - break; - case CycleType.PTO: - throw new VectoException("PTO Cycle can not be used as main cycle!"); - default: - throw new ArgumentOutOfRangeException("CycleType unknown:" + data.Cycle.CycleType); - } - return run; - } - - private static Action<ModalDataContainer> PrepareReport(VectoRunData data) - { - if (data.Report != null) { - data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData.FuelMode, data); - } - Action<ModalDataContainer> addReportResult = modData => { - if (data.Report != null) { - data.Report.AddResult(data.Loading, data.Mission, data.EngineData.FuelMode, data, modData); - } - }; - return addReportResult; - } - } -} - diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..d1c9d384476a0f94368f2a7b92ea8b10d69956a2 --- /dev/null +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs @@ -0,0 +1,290 @@ +/* +* This file is part of VECTO. +* +* Copyright © 2012-2019 European Union +* +* Developed by Graz University of Technology, +* Institute of Internal Combustion Engines and Thermodynamics, +* Institute of Technical Informatics +* +* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved +* by the European Commission - subsequent versions of the EUPL (the "Licence"); +* You may not use VECTO except in compliance with the Licence. +* You may obtain a copy of the Licence at: +* +* https://joinup.ec.europa.eu/community/eupl/og_page/eupl +* +* Unless required by applicable law or agreed to in writing, VECTO +* distributed under the Licence is distributed on an "AS IS" basis, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the Licence for the specific language governing permissions and +* limitations under the Licence. +* +* Authors: +* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology +* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology +* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology +* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology +* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology +* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology +*/ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Threading; +using System.Xml; +using Newtonsoft.Json; +using Ninject; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.OutputData.ModFilter; +using TUGraz.VectoCore.OutputData.XML; +using Formatting = Newtonsoft.Json.Formatting; + +namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory +{ + public abstract class SimulatorFactory : LoggingObject, ISimulatorFactory + { + private static int _jobNumberCounter; + + + protected Func<ISimulatorFactory> _followingSimulatorFactoryCreator = null; + + protected bool _simulate = true; + + public ISimulatorFactory FollowUpSimulatorFactory + { + get => CreateFollowUpSimulatorFactory ? _followingSimulatorFactoryCreator?.Invoke() : null; + } + + public bool CreateFollowUpSimulatorFactory = false; + protected readonly ExecutionMode _mode; + + + #region Constructors and Factory Methods to instantiate Instances of SimulatorFactory without NInject (should only be used in Testcases that are not updated yet) + + [Obsolete("Creation of new SimulatorFactories should be done with SimulatorFactoryFactory NInject Factory", false)] + public static SimulatorFactory CreateSimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, IDeclarationReport declarationReport = null, IVTPReport vtpReport=null, bool validate = true) + { + switch (mode) + { + case ExecutionMode.Declaration: + ISimulatorFactoryFactory simFactoryFactory = + new StandardKernel(new VectoNinjectModule()).Get<ISimulatorFactoryFactory>(); + return new SimulatorFactoryDeclaration(dataProvider, writer, declarationReport, vtpReport, validate); + case ExecutionMode.Engineering: + return new SimulatorFactoryEngineering(dataProvider, writer, validate); + default: + throw new VectoException("Unkown factory mode in SimulatorFactory: {0}", mode); + } + } + [Obsolete("Creation of new SimulatorFactories should be done with SimulatorFactoryFactory NInject Factory", false)] + public static SimulatorFactory CreateSimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer) + { + return CreateSimulatorFactory(mode, dataProvider, writer, null, null, true); + } + + protected SimulatorFactory(ExecutionMode mode, IOutputDataWriter writer, bool validate = true) + { + System.Diagnostics.Debug.WriteLine("Created Simulator Factory"); + Log.Info("########## VectoCore Version {0} ##########", Assembly.GetExecutingAssembly().GetName().Version); + JobNumber = Interlocked.Increment(ref _jobNumberCounter); + ReportWriter = writer; + Validate = validate; + _mode = mode; + + ThreadPool.GetMinThreads(out var workerThreads, out var completionThreads); + if (workerThreads < 12) { + workerThreads = 12; + } + ThreadPool.SetMinThreads(workerThreads, completionThreads); + + } + + + #endregion + + + + + + + public bool Validate { get; set; } + + public IVectoRunDataFactory DataReader { get; protected set; } + + public SummaryDataContainer SumData { get; set; } + + public abstract IOutputDataWriter ReportWriter { get; protected set; } + + public int JobNumber { get; set; } + + public bool WriteModalResults { get; set; } + public bool ModalResults1Hz { get; set; } + public bool ActualModalData { get; set; } + + public bool SerializeVectoRunData { get; set; } + + /// <summary> + /// Creates powertrain and initializes it with the component's data. + /// </summary> + /// <returns>new VectoRun Instance</returns> + public IEnumerable<IVectoRun> SimulationRuns() + { + var i = 0; + var warning1Hz = false; + if (!_simulate) { + yield break; + } + foreach (var data in DataReader.NextRun()) { + var current = i++; + var d = data; + data.JobRunId = current; + yield return data.Exempted || data.MultistageRun ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz); + } + } + + private IVectoRun GetExemptedRun(VectoRunData data) + { + if (data.Report != null) { + data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data); + } + return new ExemptedRun(new ExemptedRunContainer(data.ExecutionMode) { RunData = data }, modData => { + if (data.Report != null) { + data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData); + } + }); + } + + private IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz) + { + var addReportResult = PrepareReport(data); + if (!data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz && !warning1Hz) { + Log.Error("Output filter for 1Hz results is only available for distance-based cycles!"); + warning1Hz = true; + } + var fuels = data.EngineData != null ? data.EngineData.Fuels.Select(x => x.FuelData).ToList() : new List<IFuelProperties>(); + IModalDataContainer modContainer = + new ModalDataContainer( + data, ReportWriter, + (_mode == ExecutionMode.Declaration) ? addReportResult : null, + GetModDataFilter(data)) { + WriteModalResults = _mode != ExecutionMode.Declaration || WriteModalResults + }; + + + // TODO: MQ 20200410 - Remove for official release! + if (SerializeVectoRunData) { + File.WriteAllText( + Path.Combine( + (ReportWriter as FileOutputWriter)?.BasePath ?? "", $"{data.JobName}_{data.Cycle.Name}{data.ModFileSuffix}.json"), + JsonConvert.SerializeObject(data, Formatting.Indented)); + } + + var builder = new PowertrainBuilder( + modContainer, modData => { + if (SumData != null) { + SumData.Write(modData, JobNumber, current, d); + } + }); + + var run = GetVectoRun(data, builder); + + if (Validate) { + ValidateVectoRunData( + run, data.JobType, data.ElectricMachinesData.FirstOrDefault()?.Item1, data.GearboxData?.Type, + data.Mission != null && data.Mission.MissionType.IsEMS()); + } + return run; + } + + private IModalDataFilter[] GetModDataFilter(VectoRunData data) + { + var modDataFilter = ModalResults1Hz + ? new IModalDataFilter[] { new ModalData1HzFilter() } + : null; + + if (ActualModalData) { + modDataFilter = new IModalDataFilter[] { new ActualModalDataFilter(), }; + } + return data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz || ActualModalData ? modDataFilter : null; + } + + private void ValidateVectoRunData(VectoRun run, VectoSimulationJobType jobType, PowertrainPosition? emPosition, GearboxType? gearboxtype, bool isEms) + { + var validationErrors = run.Validate(_mode, jobType, emPosition, gearboxtype, isEms); + if (validationErrors.Any()) { + throw new VectoException("Validation of Run-Data Failed: " + + string.Join("\n", validationErrors.Select(r => r.ErrorMessage + string.Join("; ", r.MemberNames)))); + } + } + + private static VectoRun GetVectoRun(VectoRunData data, PowertrainBuilder builder) + { + VectoRun run; + switch (data.Cycle.CycleType) { + case CycleType.DistanceBased: + if ((data.SimulationType & SimulationType.DistanceCycle) == 0) { + throw new VectoException("Distance-based cycle can not be simulated in {0} mode", data.SimulationType); + } + run = new DistanceRun(builder.Build(data)); + break; + case CycleType.EngineOnly: + if ((data.SimulationType & SimulationType.EngineOnly) == 0) { + throw new VectoException("Engine-only cycle can not be simulated in {0} mode", data.SimulationType); + } + run = new TimeRun(builder.Build(data)); + break; + case CycleType.VTP: + if ((data.SimulationType & SimulationType.VerificationTest) == 0) { + throw new VectoException("VTP-cycle can not be simulated in {0} mode", data.SimulationType); + } + run = new TimeRun(builder.Build(data)); + break; + + case CycleType.PWheel: + case CycleType.MeasuredSpeed: + case CycleType.MeasuredSpeedGear: + if ((data.SimulationType & (SimulationType.PWheel | SimulationType.MeasuredSpeedCycle)) == 0) { + throw new VectoException("{1}-cycle can not be simulated in {0} mode", data.SimulationType, data.Cycle.CycleType); + } + run = new TimeRun(builder.Build(data)); + break; + case CycleType.PTO: + throw new VectoException("PTO Cycle can not be used as main cycle!"); + default: + throw new ArgumentOutOfRangeException("CycleType unknown:" + data.Cycle.CycleType); + } + return run; + } + + private static Action<ModalDataContainer> PrepareReport(VectoRunData data) + { + if (data.Report != null) { + data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData.FuelMode, data); + } + Action<ModalDataContainer> addReportResult = modData => { + if (data.Report != null) { + data.Report.AddResult(data.Loading, data.Mission, data.EngineData.FuelMode, data, modData); + } + }; + return addReportResult; + } + } +} + diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs new file mode 100644 index 0000000000000000000000000000000000000000..30088d630764e814b48f2c95a3ec915ba0da0f36 --- /dev/null +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs @@ -0,0 +1,206 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml; +using Ninject; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.OutputData.XML; + +namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory +{ + public class SimulatorFactoryDeclaration : SimulatorFactory + { + //private readonly ISimulatorFactoryFactory _simFactoryFactory; + + public SimulatorFactoryDeclaration(IInputDataProvider dataProvider, + IOutputDataWriter writer, + IDeclarationReport declarationReport, + IVTPReport vtpReport, + bool validate) : base(ExecutionMode.Declaration, writer, validate) + { + CreateDeclarationDataReader(dataProvider, declarationReport, vtpReport); + //_simFactoryFactory = simFactoryFactory; + } + + private void CreateDeclarationDataReader(IInputDataProvider dataProvider, IDeclarationReport declarationReport, IVTPReport vtpReport) + { + if (dataProvider is IVTPDeclarationInputDataProvider vtpProvider) + { + var report = vtpReport ?? new XMLVTPReport(ReportWriter); + if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsLorry()) + { + DataReader = new DeclarationVTPModeVectoRunDataFactoryLorries(vtpProvider, report); + } + if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsBus()) + { + DataReader = new DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider, report); + } + return; + } + + if (dataProvider is ISingleBusInputDataProvider) + { + var singleBus = dataProvider as ISingleBusInputDataProvider; + var report = declarationReport ?? new XMLDeclarationReport(ReportWriter); + DataReader = new DeclarationModeSingleBusVectoRunDataFactory(singleBus, report); + return; + } + if (dataProvider is IDeclarationInputDataProvider declDataProvider) + { + if (declDataProvider.JobInputData.Vehicle.VehicleCategory.IsLorry()) + { + var report = declarationReport ?? new XMLDeclarationReport(ReportWriter); + DataReader = new DeclarationModeTruckVectoRunDataFactory(declDataProvider, report); + return; + } + + switch (declDataProvider.JobInputData.Vehicle.VehicleCategory) + { + case VehicleCategory.HeavyBusCompletedVehicle: + var reportCompleted = declarationReport ?? + new XMLDeclarationReportCompletedVehicle(ReportWriter, + declDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle) + { + PrimaryVehicleReportInputData = declDataProvider.PrimaryVehicleData, + }; + DataReader = new DeclarationModeCompletedBusVectoRunDataFactory(declDataProvider, reportCompleted); + return; + case VehicleCategory.HeavyBusPrimaryVehicle: + var reportPrimary = declarationReport ?? + new XMLDeclarationReportPrimaryVehicle(ReportWriter, + declDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle); + DataReader = new DeclarationModePrimaryBusVectoRunDataFactory(declDataProvider, reportPrimary); + return; + default: + System.Diagnostics.Debug.Assert(false); + break; + } + } + + if (dataProvider is IMultistageVIFInputData multistageVifInputData) + { + //ToDo FK: check if data completed == true && final + var inputComplete = multistageVifInputData.MultistageJobInputData.JobInputData.InputComplete; + var declType = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage + ?.Vehicle.VehicleDeclarationType; + var final = declType == VehicleDeclarationType.final; + var exempted = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage? + .Vehicle.ExemptedVehicle == true; + + + if (multistageVifInputData.VehicleInputData == null) + { // eigener writer für in-memory + var reportCompleted = new XMLDeclarationReportCompletedVehicle(ReportWriter, true) + { + PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle, + }; + DataReader = new DeclarationModeCompletedMultistageBusVectoRunDataFactory( + multistageVifInputData.MultistageJobInputData, + reportCompleted); + if (!((final || exempted) && inputComplete)) + { + _simulate = false; + } + + } + else + { + var report = declarationReport ?? new XMLDeclarationReportMultistageBusVehicle(ReportWriter); + DataReader = new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report); + + _followingSimulatorFactoryCreator = () => { + var container = new StandardKernel( + new VectoNinjectModule() + ); + var inputDataReader = container.Get<IXMLInputDataReader>(); + + var mode = _mode; + var inputData = + inputDataReader.CreateDeclaration( + XmlReader.Create(ReportWriter.MultistageXmlReport.ToString().ToStream())); + //inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter) + // .XMLMultistageReportFileName); +#pragma warning disable 618 + return CreateSimulatorFactory(_mode, new XMLDeclarationVIFInputData(inputData as IMultistageBusInputDataProvider, null), ReportWriter, report, vtpReport, Validate); +#pragma warning restore 618 + }; + + } + return; + } + + if (dataProvider is IMultistagePrimaryAndStageInputDataProvider multiStagePrimaryAndStageInputData) + { + System.Diagnostics.Debug.Assert(multiStagePrimaryAndStageInputData.PrimaryVehicle.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle); + + var tempOutputWriter = new TempFileOutputWriter(ReportWriter, ReportType.DeclarationReportManufacturerXML); + var originalReportWriter = ReportWriter; + ReportWriter = tempOutputWriter; + + var tempPrimaryReport = new XMLDeclarationReportPrimaryVehicle(tempOutputWriter, true); + + DataReader = new DeclarationModePrimaryBusVectoRunDataFactory(multiStagePrimaryAndStageInputData.PrimaryVehicle, tempPrimaryReport); + + var reportPrimary = new XMLDeclarationReportPrimaryVehicle(ReportWriter, + true); + + CreateFollowUpSimulatorFactory = true; + _followingSimulatorFactoryCreator = (() => { + //replace with dependency injection + var container = new StandardKernel( + new VectoNinjectModule() + ); + try + { + var inputDataReader = container.Get<IXMLInputDataReader>(); + var primaryInputData = inputDataReader.CreateDeclaration(tempOutputWriter + .GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()); + //var primaryInputData = inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter).XMLPrimaryVehicleReportName); + var vifInputData = new XMLDeclarationVIFInputData( + primaryInputData as IMultistageBusInputDataProvider, + multiStagePrimaryAndStageInputData.StageInputData); + + var manStagesCount = + vifInputData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? -1; + + originalReportWriter.NumberOfManufacturingStages = manStagesCount; +#pragma warning disable 618 + var factory = CreateSimulatorFactory(_mode, +#pragma warning restore 618 + vifInputData, originalReportWriter, + null, + vtpReport, + Validate); + factory.CreateFollowUpSimulatorFactory = true; + return factory; + } + catch (Exception ex) + { + Log.Error($"Failed to create additional Simulation run: {ex.Message}"); + return null; + } + }); + return; + } + + + throw new VectoException("Unknown InputData for Declaration Mode!"); + } + + #region Overrides of SimulatorFactory + + public override IOutputDataWriter ReportWriter { get; protected set; } + + #endregion + } +} diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs new file mode 100644 index 0000000000000000000000000000000000000000..3ef0758934a9cce88f83dd5c224fa53f3b8381c6 --- /dev/null +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory +{ + public class SimulatorFactoryEngineering : SimulatorFactory + { + public SimulatorFactoryEngineering(IInputDataProvider dataProvider, IOutputDataWriter writer, bool validate) : base(ExecutionMode.Engineering, writer, validate) + { + CreateEngineeringDataReader(dataProvider); + } + + + + private void CreateEngineeringDataReader(IInputDataProvider dataProvider) + { + if (dataProvider is IVTPEngineeringInputDataProvider vtpProvider) + { + if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsLorry()) + { + DataReader = new EngineeringVTPModeVectoRunDataFactoryLorries(vtpProvider); + } + if (vtpProvider.JobInputData.Vehicle.VehicleCategory.IsBus()) + { + DataReader = new EngineeringVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider); + } + return; + } + if (dataProvider is IEngineeringInputDataProvider engDataProvider) + { + if (engDataProvider.JobInputData.JobType == VectoSimulationJobType.EngineOnlySimulation) + { + DataReader = new EngineOnlyVectoRunDataFactory(engDataProvider); + } + else + { + DataReader = new EngineeringModeVectoRunDataFactory(engDataProvider); + } + return; + } + throw new VectoException("Unknown InputData for Engineering Mode!"); + } + + #region Overrides of SimulatorFactory + + public override IOutputDataWriter ReportWriter { get; protected set; } + + #endregion + } +} diff --git a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs index a64b23ec59b5721378dff38e0576e55088fc13c7..bda5e5f57d347d9478e118c7adf4a33661a58687 100644 --- a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs +++ b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs @@ -33,10 +33,13 @@ using System.Collections.Generic; using Ninject.Extensions.Factory; using Ninject.Modules; using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.Utils.Ninject; using TUGraz.VectoHashing; namespace TUGraz.VectoCore.Models.Simulation @@ -47,9 +50,11 @@ namespace TUGraz.VectoCore.Models.Simulation public override void Load() { - Bind<ISimulatorFactoryFactory>().ToFactory(); + Bind<ISimulatorFactoryFactory>().ToFactory(() => new UseFirstArgumentAsInstanceProvider()); + + Bind<ISimulatorFactory>().To<SimulatorFactoryDeclaration>().Named(ExecutionMode.Declaration.ToString()); + Bind<ISimulatorFactory>().To<SimulatorFactoryEngineering>().Named(ExecutionMode.Engineering.ToString()); - Bind<ISimulatorFactory>().To<SimulatorFactory>(); Bind<IDeclarationReport>().To<NullDeclarationReport>(); Bind<IVTPReport>().To<NullVTPReport>(); diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index 36b3a28062de00f9a82907333d04a0e6768c06a4..ab04879a329c89cff7798953f406d21ded1ba966 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -438,6 +438,8 @@ <Compile Include="Models\SimulationComponent\Impl\ATClutchInfo.cs" /> <Compile Include="Models\Simulation\Impl\PCCEcoRollEngineStopPreprocessor.cs" /> <Compile Include="Models\Simulation\Impl\PCCSegmentPreprocessor.cs" /> + <Compile Include="Models\Simulation\Impl\SimulatorFactory\SimulatorFactoryDeclaration.cs" /> + <Compile Include="Models\Simulation\Impl\SimulatorFactory\SimulatorFactoryEngineering.cs" /> <Compile Include="Models\Simulation\ISimulationPreprocessor.cs" /> <Compile Include="Models\Simulation\ISimulatorFactory.cs" /> <Compile Include="Models\Simulation\ISimulatorFactoryFactory.cs" /> @@ -743,7 +745,7 @@ <Compile Include="Models\SimulationComponent\Impl\PowertrainDrivingCycle.cs" /> <Compile Include="Models\Simulation\Data\ModalResult.cs" /> <Compile Include="Models\Simulation\IVectoRun.cs" /> - <Compile Include="Models\Simulation\Impl\SimulatorFactory.cs" /> + <Compile Include="Models\Simulation\Impl\SimulatorFactory\SimulatorFactory.cs" /> <Compile Include="Models\Simulation\Impl\VectoRun.cs" /> <Compile Include="Models\Simulation\Impl\JobContainer.cs" /> <Compile Include="Models\Simulation\Impl\VehicleContainer.cs" /> diff --git a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs index 2f0115a5829d5aa77a5a9f096b6fb3f18c6f9ba7..aa8967b189ded6858106aab6a670418b40bba0b7 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs @@ -8,6 +8,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -239,7 +240,7 @@ namespace TUGraz.VectoCore.Tests.FileIO { var inputProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Hybrids\GenericVehicle_Group2_P2\Class2_RigidTruck_ParHyb_ENG.vecto"); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputProvider, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, null); var sumContainer = new SummaryDataContainer(null); var jobContainer = new JobContainer(sumContainer); @@ -266,7 +267,7 @@ namespace TUGraz.VectoCore.Tests.FileIO { var inputProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\BatteryElectric\GenericVehicleB4\BEV_ENG.vecto"); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputProvider, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, null); var sumContainer = new SummaryDataContainer(null); var jobContainer = new JobContainer(sumContainer); diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs index 9a5981be2d8504706b782ed7dd9e59b086e28d64..5d2c6e67771cdd1f5bf3ed9bb3fd319e6e768de6 100644 --- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs +++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTests.cs @@ -8,6 +8,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Utils; @@ -95,11 +96,9 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; factory.SumData = sumContainer; @@ -136,11 +135,9 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; factory.SumData = sumContainer; @@ -177,11 +174,9 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; factory.SumData = sumContainer; @@ -271,11 +266,9 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; factory.SumData = sumContainer; @@ -303,11 +296,9 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS ? xmlInputReader.CreateDeclaration(relativeJobPath) //? new XMLDeclarationInputDataProvider(relativeJobPath, true) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); jobContainer.AddRuns(factory); @@ -329,11 +320,9 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS ? xmlInputReader.CreateDeclaration(relativeJobPath) //? new XMLDeclarationInputDataProvider(relativeJobPath, true) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); diff --git a/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs b/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs index 73d27a4a754efa732b8ab124d30c565bb522631a..8113b2a8edc0ba3837c7248d0675b21901b3b6fa 100644 --- a/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs +++ b/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs @@ -7,6 +7,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; @@ -44,11 +45,9 @@ namespace TUGraz.VectoCore.Tests.Integration var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new MockSumWriter()); var runs = factory.SimulationRuns().ToArray(); @@ -66,11 +65,9 @@ namespace TUGraz.VectoCore.Tests.Integration var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); diff --git a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs index babc9da2252811cb0e3d524e8f0973afc84c50f7..193ac96d89e1963a8e41bce46bee639151caee18 100644 --- a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs +++ b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs @@ -15,6 +15,7 @@ using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; @@ -217,11 +218,9 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric var inputProvider = JSONInputDataFactory.ReadJsonJob(jobFile); var writer = new FileOutputWriter(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputProvider, writer) - { - Validate = false, - WriteModalResults = true, - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, writer); + factory.Validate = false; + factory.WriteModalResults = true; var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); @@ -376,10 +375,9 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric var inputProvider = JSONInputDataFactory.ReadJsonJob(jobFile); var writer = new FileOutputWriter(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputProvider, writer) { - Validate = false, - WriteModalResults = true, - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, writer); + factory.Validate = false; + factory.WriteModalResults = true; var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); @@ -595,11 +593,9 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric var inputProvider = JSONInputDataFactory.ReadJsonJob(jobFile); var writer = new FileOutputWriter(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputProvider, writer) - { - Validate = false, - WriteModalResults = true, - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, writer); + factory.Validate = false; + factory.WriteModalResults = true; var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs index 947f16d6146b32527bfeb7d6b8eb1aa54a04a814..c3dc238657c48c6abbbf7e6bd893480b5f8aac09 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs @@ -27,6 +27,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.OutputData; @@ -108,12 +109,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus JSONInputDataFactory.ReadJsonJob(JobFile_Group41) as JSONInputDataCompletedBusFactorMethodV7, xmlInputReader); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) - { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; //var sumContainer = new SummaryDataContainer(writer); //var jobContainer = new JobContainer(sumContainer); @@ -1038,12 +1036,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus } } - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var runs = factory.DataReader.NextRun().ToList(); return runs; @@ -1072,11 +1067,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus } } - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); //var runs = factory.SimulationRuns().ToArray(); @@ -1109,11 +1102,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); //var runs = factory.SimulationRuns().ToArray(); @@ -1152,11 +1143,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); var runs = factory.SimulationRuns().ToArray(); @@ -1195,10 +1184,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus //var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); //var inputData = new MockCompletedBusInputData(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer) { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer); + factory.WriteModalResults = true; + factory.Validate = false; var runs = factory.DataReader.NextRun().ToList(); var run = runs[runIdx]; @@ -1228,11 +1216,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var modifiedCompleted = xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(modified))); var inputData = new MockSingleBusInputDataProvider(primary.JobInputData.Vehicle, modifiedCompleted.JobInputData.Vehicle); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, null) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, null); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var runs = factory.DataReader.NextRun().ToList(); var run = runs[runIdx]; @@ -1322,11 +1308,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); var runs = factory.SimulationRuns().ToArray(); diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs index 991a0731a24c60d11b48e945a7fdb55b2ca0353c..afb6c1fa084e37aa5bcb13141da68d13ddbb6efa 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs @@ -15,6 +15,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; using TUGraz.VectoCore.Tests.Utils; @@ -64,11 +65,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus //var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); //var inputData = _xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(modified, null), writer) - { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(modified, null), writer); + factory.WriteModalResults = true; + factory.Validate = false; AssertHelper.Exception<VectoException>(() => { var runs = factory.DataReader.NextRun().ToList();}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group "); @@ -114,13 +113,11 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus //var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified); //var inputData = new MockCompletedBusInputData(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(modified, null), writer) - { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(modified, null), writer); + factory.WriteModalResults = true; + factory.Validate = false; - //AssertHelper.Exception<VectoException>(() => { + //AssertHelper.Exception<VectoException>(() => { var runs = factory.DataReader.NextRun().ToList(); //}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group "); } @@ -147,7 +144,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus var filename = Guid.NewGuid().ToString().Substring(0, 20); var writer = new FileOutputVIFWriter(filename, 0); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); jobContainer.Execute(); diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs index 7ce45ca1af8b6954e93eec4e5191b205c73a1f1a..551d97958594c6e08e23bcc371982b7dc8387875 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs @@ -40,6 +40,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.Utils; @@ -91,7 +92,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration } var inputDataProvider = xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null, validate: false); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null, validate: false); var first = factory.SimulationRuns().ToArray().First(); var modData = ((ModalDataContainer)first.GetContainer().ModalData).Data; diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs index 2b262cd9cbb18cf422175226be6446106b7373de..9d6a2270ca935b96908435da53b537b2c6ef782d 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs @@ -44,6 +44,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; using TUGraz.VectoCore.Tests.Utils; @@ -92,10 +93,9 @@ namespace TUGraz.VectoCore.Tests.Integration var inputData = xmlInputReader.CreateDeclaration(filename); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var jobContainer = new JobContainer(new MockSumWriter()); var runs = factory.SimulationRuns().ToList(); @@ -156,10 +156,9 @@ namespace TUGraz.VectoCore.Tests.Integration var inputData = xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); @@ -234,10 +233,9 @@ namespace TUGraz.VectoCore.Tests.Integration var inputData = xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); @@ -310,10 +308,9 @@ namespace TUGraz.VectoCore.Tests.Integration var inputData = xmlInputReader.CreateDeclaration(filename); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var jobContainer = new JobContainer(new MockSumWriter()); var runs = factory.SimulationRuns().ToList(); diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs index c37a4affedb4c7ba29df1408cdcdac341d8157c5..a176dfdde8eb4b079867aa5636e682c34031a226 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs @@ -45,6 +45,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; @@ -100,10 +101,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration var writer = new FileOutputWriter(filename); // new MockDeclarationWriter(filename); var inputData = xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/TestMaxMassInMUCycle.cs b/VectoCore/VectoCoreTest/Integration/Declaration/TestMaxMassInMUCycle.cs index d4284c458611e6e8d5d21c6e5d2a245246a8a783..0899ea8538f9aead4ac8caca547dc699fb9bfc27 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/TestMaxMassInMUCycle.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/TestMaxMassInMUCycle.cs @@ -37,6 +37,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; @@ -66,11 +67,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration var relativeJobPath = jobFile; var writer = new FileOutputWriter(relativeJobPath); var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs index 05b72fc4ec65f1f4d9761d58ebedf402ee8fef5f..85246786987e121ea4123e0086d6fec85134f865 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs @@ -37,6 +37,7 @@ using NUnit.Framework; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; @@ -69,10 +70,9 @@ namespace TUGraz.VectoCore.Tests.Integration { var writer = new FileOutputWriter(filename); var inputData = xmlInputReader.CreateDeclaration(filename); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var jobContainer = new JobContainer(new MockSumWriter()); var runs = factory.SimulationRuns().ToList(); diff --git a/VectoCore/VectoCoreTest/Integration/DualFuel/DualFuelTests.cs b/VectoCore/VectoCoreTest/Integration/DualFuel/DualFuelTests.cs index 3a91ec5a632d784d54844040b538588c83187066..292a3cd34817ec8893b49af5c0c8b00fcb399329 100644 --- a/VectoCore/VectoCoreTest/Integration/DualFuel/DualFuelTests.cs +++ b/VectoCore/VectoCoreTest/Integration/DualFuel/DualFuelTests.cs @@ -5,6 +5,7 @@ using NUnit.Framework; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -34,10 +35,9 @@ namespace TUGraz.VectoCore.Tests.Integration.DualFuel var jobContainer = new JobContainer(sumData); var inputData = xmlInputReader.CreateDeclaration(jobName); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + runsFactory.WriteModalResults = true; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); @@ -57,10 +57,9 @@ namespace TUGraz.VectoCore.Tests.Integration.DualFuel var jobContainer = new JobContainer(sumData); var inputData = xmlInputReader.CreateDeclaration(jobName); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + runsFactory.WriteModalResults = true; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); diff --git a/VectoCore/VectoCoreTest/Integration/FuelTypesTest.cs b/VectoCore/VectoCoreTest/Integration/FuelTypesTest.cs index 9e23da4bef43cee7b4617cf6cdb5b2253371b7a8..3bacc185d0c34dfab8cd4b49d3ba81753e40069a 100644 --- a/VectoCore/VectoCoreTest/Integration/FuelTypesTest.cs +++ b/VectoCore/VectoCoreTest/Integration/FuelTypesTest.cs @@ -40,6 +40,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Utils; @@ -108,10 +109,9 @@ namespace TUGraz.VectoCore.Tests.Integration var jobContainer = new JobContainer(sumData); var inputData = JSONInputDataFactory.ReadJsonJob(jobName); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + runsFactory.WriteModalResults = true; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); diff --git a/VectoCore/VectoCoreTest/Integration/FullCycleDeclarationTest.cs b/VectoCore/VectoCoreTest/Integration/FullCycleDeclarationTest.cs index ef936822099a928ec60d41e926040a6d9295ba9e..e40c44ba0f9d908810d484831b89ff3dfd4d5f6c 100644 --- a/VectoCore/VectoCoreTest/Integration/FullCycleDeclarationTest.cs +++ b/VectoCore/VectoCoreTest/Integration/FullCycleDeclarationTest.cs @@ -42,6 +42,7 @@ using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Utils; using TUGraz.VectoCore.Utils; using NUnit.Framework; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; namespace TUGraz.VectoCore.Tests.Integration { @@ -182,10 +183,9 @@ namespace TUGraz.VectoCore.Tests.Integration { var inputData = JSONInputDataFactory.ReadJsonJob(LongHaulTruckDeclarationJob); var fileWriter = new FileOutputWriter(LongHaulTruckDeclarationJob); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; + factory.Validate = false; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); @@ -216,14 +216,12 @@ namespace TUGraz.VectoCore.Tests.Integration var inputData = JSONInputDataFactory.ReadJsonJob(LongHaulTruckDeclarationJob); var fileWriter = new FileOutputWriter("Truck40t_Mod1Hz_Test.vecto"); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - ModalResults1Hz = false - }; - var factory1Hz = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - ModalResults1Hz = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; + factory.ModalResults1Hz = false; + var factory1Hz = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory1Hz.WriteModalResults = true; + factory1Hz.ModalResults1Hz = true; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); @@ -300,10 +298,9 @@ namespace TUGraz.VectoCore.Tests.Integration { var inputData = JSONInputDataFactory.ReadJsonJob(DeliveryTruckDeclarationJob); var fileWriter = new FileOutputWriter(DeliveryTruckDeclarationJob); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; + factory.Validate = false; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); @@ -331,10 +328,9 @@ namespace TUGraz.VectoCore.Tests.Integration { var inputData = JSONInputDataFactory.ReadJsonJob(DeliveryTruck8GearDeclarationJob); var fileWriter = new FileOutputWriter(DeliveryTruck8GearDeclarationJob); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; + factory.Validate = false; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); @@ -355,9 +351,8 @@ namespace TUGraz.VectoCore.Tests.Integration { var inputData = JSONInputDataFactory.ReadJsonJob(Class9RigidTruckPTOJob); var fileWriter = new FileOutputWriter(Class9RigidTruckPTOJob); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); @@ -377,9 +372,8 @@ namespace TUGraz.VectoCore.Tests.Integration { var inputData = JSONInputDataFactory.ReadJsonJob(Class5TractorDeclPrimaryRetarder); var fileWriter = new FileOutputWriter(Class5TractorDeclPrimaryRetarder); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); diff --git a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs index 8b81313065eef18eb73c750d8abf51bcaff8fe8c..8bfbfeb882bb4d6449c664edb0259e8b09f8bdcf 100644 --- a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs @@ -16,6 +16,7 @@ using TUGraz.VectoCore.InputData.Reader.ShiftStrategy; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; @@ -291,10 +292,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid var inputProvider = JSONInputDataFactory.ReadJsonJob(jobFile); var writer = new FileOutputWriter(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputProvider, writer) { - Validate = false, - WriteModalResults = true, - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, writer); + factory.Validate = false; + factory.WriteModalResults = true; var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); @@ -848,10 +848,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid var inputProvider = JSONInputDataFactory.ReadJsonJob(jobFile); var writer = new FileOutputWriter(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputProvider, writer) { - Validate = false, - WriteModalResults = true, - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, writer); + factory.Validate = false; + factory.WriteModalResults = true; var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs index 606784e322e98171e73e754064a701b98c4b625b..62a554a0c80717e9e8ac822162bf48bf5d754260 100644 --- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs @@ -11,6 +11,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -190,14 +191,12 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage { _fileoutputWriter = new FileOutputWriter(_outputDirectory); _tempFileOutputWriter = new TempFileOutputWriter(_fileoutputWriter); - var runsFactory = new SimulatorFactory(_mode, input, _fileoutputWriter) - { - WriteModalResults = true, - ModalResults1Hz = true, - Validate = true, - ActualModalData = true, - SerializeVectoRunData = true, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(_mode, input, _fileoutputWriter); + runsFactory.WriteModalResults = true; + runsFactory.ModalResults1Hz = true; + runsFactory.Validate = true; + runsFactory.ActualModalData = true; + runsFactory.SerializeVectoRunData = true; var timeout = 1000; diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs index bc690a7de656abc596b6ff31b352a976bfe5a4bd..4288c4f5d3d4c3c9238d87f9864772b209e65a0a 100644 --- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs @@ -17,6 +17,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.OutputData.XML; @@ -88,7 +89,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage _generatedVIFFilepath = writer.XMLMultistageReportFileName; var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); var jobContainer = new JobContainer(new MockSumWriter()); @@ -127,7 +128,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages); var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); var jobContainer = new JobContainer(new MockSumWriter()); var runs = factory.SimulationRuns().ToList(); @@ -331,12 +332,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage var writer = new MockDeclarationWriter("vif_vehicle-sample_test.xml"); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) - { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); jobContainer.AddRuns(factory); @@ -360,11 +358,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage var writer = new FileOutputWriter("vif_vehicle-sample_test.xml"); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); jobContainer.AddRuns(factory); @@ -388,11 +384,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage //var xmlreport = new XMLDeclarationReportMultistageBusVehicle(writer); var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); jobContainer.AddRuns(factory); @@ -408,12 +402,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage var inputData = xmlInputReader.Create(primaryFile); var writer = new MockDeclarationWriter(outputFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) - { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); jobContainer.AddRuns(factory); @@ -434,11 +425,9 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage var writer = new FileOutputWriter(outputFile); var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport) - { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport); + factory.WriteModalResults = true; + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); jobContainer.AddRuns(factory); diff --git a/VectoCore/VectoCoreTest/Integration/RoadSweepers/RoadSweeperTests.cs b/VectoCore/VectoCoreTest/Integration/RoadSweepers/RoadSweeperTests.cs index 309efab926658ed494f85bc8e0a80a90bb5f0743..6d198dcf89cf8e85da868b651e2f52138126dd35 100644 --- a/VectoCore/VectoCoreTest/Integration/RoadSweepers/RoadSweeperTests.cs +++ b/VectoCore/VectoCoreTest/Integration/RoadSweepers/RoadSweeperTests.cs @@ -14,6 +14,7 @@ using TUGraz.VectoCore.InputData.Reader; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -198,11 +199,9 @@ namespace TUGraz.VectoCore.Tests.Integration.RoadSweepers var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; factory.SumData = sumContainer; @@ -240,11 +239,9 @@ namespace TUGraz.VectoCore.Tests.Integration.RoadSweepers var sumContainer = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumContainer); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; factory.SumData = sumContainer; diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs index 4dfc179aca1dd162c11ba9f7b725c2080e16fd6e..2e96e7ad0d6165d5fae4bca65a3669d1d4761ca5 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs @@ -53,6 +53,7 @@ using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels; using NUnit.Framework; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns { @@ -341,7 +342,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var jobContainer = new JobContainer(sumData); var inputData = JSONInputDataFactory.ReadJsonJob(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); jobContainer.AddRuns(factory); jobContainer.Execute(); diff --git a/VectoCore/VectoCoreTest/Integration/TestVehicleIdlingSpeed.cs b/VectoCore/VectoCoreTest/Integration/TestVehicleIdlingSpeed.cs index 896bdaf5a83a3506dbff007ba1dd45b155978b4c..84f5f77111aa69ad41a7a8b3f05c92aef01d4c0d 100644 --- a/VectoCore/VectoCoreTest/Integration/TestVehicleIdlingSpeed.cs +++ b/VectoCore/VectoCoreTest/Integration/TestVehicleIdlingSpeed.cs @@ -43,6 +43,7 @@ using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Utils; using NUnit.Framework; using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; namespace TUGraz.VectoCore.Tests.Integration { @@ -88,7 +89,7 @@ namespace TUGraz.VectoCore.Tests.Integration var inputDataProvider = xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, new FileOutputWriter("Idle900")); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, new FileOutputWriter("Idle900")); //factory.WriteModalResults = true; var jobContainer = new JobContainer(null); diff --git a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs index 92b1d4a78c19b1324982ed3842f95d7ef37f956d..8fbdcd363150598727b3d56354795ca47c2b08a9 100644 --- a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs +++ b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs @@ -40,6 +40,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using Assert = NUnit.Framework.Assert; @@ -92,7 +93,7 @@ namespace TUGraz.VectoCore.Tests.Integration public void TestGearboxTorqueLimitsAbove90FLD() { var inputDataProvider = JSONInputDataFactory.ReadJsonJob(GearboxLimitJobDecl_865); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); var run = factory.DataReader.NextRun().First(); @@ -119,7 +120,7 @@ namespace TUGraz.VectoCore.Tests.Integration public void TestGearboxTorqueLimitsBelow90FLD() { var inputDataProvider = JSONInputDataFactory.ReadJsonJob(GearboxLimitJobDecl_800); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); var run = factory.DataReader.NextRun().First(); @@ -146,7 +147,7 @@ namespace TUGraz.VectoCore.Tests.Integration public void TestVehicleTorqueLimitsAbove95FLD() { var inputDataProvider = JSONInputDataFactory.ReadJsonJob(VehicleLimitJobDecl_910); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); var run = factory.DataReader.NextRun().First(); @@ -173,7 +174,7 @@ namespace TUGraz.VectoCore.Tests.Integration public void TestVehicleTorqueLimitsBelow95FLD() { var inputDataProvider = JSONInputDataFactory.ReadJsonJob(VehicleLimitJobDecl_850); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); var run = factory.DataReader.NextRun().First(); @@ -205,9 +206,8 @@ namespace TUGraz.VectoCore.Tests.Integration var fileWriter = new FileOutputWriter(file); var sumData = new SummaryDataContainer(fileWriter); var inputDataProvider = JSONInputDataFactory.ReadJsonJob(file); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, fileWriter) { - WriteModalResults = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, fileWriter); + factory.WriteModalResults = true; var jobContainer = new JobContainer(sumData); @@ -225,10 +225,9 @@ namespace TUGraz.VectoCore.Tests.Integration var fileWriter = new FileOutputWriter(file); var sumData = new SummaryDataContainer(fileWriter); var inputDataProvider = JSONInputDataFactory.ReadJsonJob(file); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, fileWriter) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, fileWriter); + factory.WriteModalResults = true; + factory.ActualModalData = true; var jobContainer = new JobContainer(sumData); @@ -246,10 +245,8 @@ namespace TUGraz.VectoCore.Tests.Integration var fileWriter = new FileOutputWriter(file); var sumData = new SummaryDataContainer(fileWriter); var inputDataProvider = JSONInputDataFactory.ReadJsonJob(file); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, fileWriter) { - WriteModalResults = true, - //ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, fileWriter); + factory.WriteModalResults = true; //ActualModalData = true var jobContainer = new JobContainer(sumData); @@ -276,10 +273,9 @@ namespace TUGraz.VectoCore.Tests.Integration { var inputData = JSONInputDataFactory.ReadJsonJob(jobFile); var fileWriter = new FileOutputWriter(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; + factory.Validate = false; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); @@ -298,10 +294,9 @@ namespace TUGraz.VectoCore.Tests.Integration { var inputData = xmlInputReader.CreateDeclaration(jobFile); var fileWriter = new FileOutputWriter(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter) { - WriteModalResults = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + factory.WriteModalResults = true; + factory.Validate = false; var sumData = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumData); jobContainer.AddRuns(factory); diff --git a/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs b/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs index 2df34c4984a06e7c830a60d8d0f18b5d260f5caa..319b8c0505a2fffe1278911b8b730fc91b1506e1 100644 --- a/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs +++ b/VectoCore/VectoCoreTest/Integration/VTP/VTPTest.cs @@ -40,6 +40,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Utils; @@ -68,13 +69,12 @@ namespace TUGraz.VectoCore.Tests.Integration.VTP var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; - + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; + jobContainer.AddRuns(runsFactory); Assert.AreEqual(1, jobContainer.Runs.Count); @@ -101,12 +101,11 @@ namespace TUGraz.VectoCore.Tests.Integration.VTP var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); @@ -140,12 +139,11 @@ namespace TUGraz.VectoCore.Tests.Integration.VTP var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); @@ -177,12 +175,11 @@ namespace TUGraz.VectoCore.Tests.Integration.VTP var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); diff --git a/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs b/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs index 841ca15840c84c4e04204c956b37fcdff81678c0..5f2b498c6bbaefbe09b947b8e1d06a38c9804143 100644 --- a/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs +++ b/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs @@ -45,6 +45,7 @@ using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.OutputData.XML; @@ -87,10 +88,9 @@ namespace TUGraz.VectoCore.Tests.Integration File.Delete(writer.SumFileName); } - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) { - WriteModalResults = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); // no need to run the simulation, we only check whether the meta-data is correct, no results are considered @@ -138,12 +138,10 @@ namespace TUGraz.VectoCore.Tests.Integration var sumData = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumData); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) - { - WriteModalResults = false, - Validate = false, - }; - jobContainer.AddRuns(runsFactory); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; + jobContainer.AddRuns(runsFactory); // no need to run the simulation, we only check whether the meta-data is correct, no results are considered jobContainer.Execute(); @@ -170,10 +168,9 @@ namespace TUGraz.VectoCore.Tests.Integration File.Delete(writer.SumFileName); } - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) { - WriteModalResults = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); jobContainer.Execute(); @@ -257,10 +254,9 @@ namespace TUGraz.VectoCore.Tests.Integration var dataProvider = xmlInputReader.CreateDeclaration(modified); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) { - WriteModalResults = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); xmlReport.DoWriteReport(); @@ -291,10 +287,9 @@ namespace TUGraz.VectoCore.Tests.Integration File.Delete(writer.SumFileName); } - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) { - WriteModalResults = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); // no need to run the simulation, we only check whether the meta-data is correct, no results are considered @@ -337,10 +332,9 @@ namespace TUGraz.VectoCore.Tests.Integration File.Delete(writer.SumFileName); } - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) { - WriteModalResults = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); // no need to run the simulation, we only check whether the meta-data is correct, no results are considered diff --git a/VectoCore/VectoCoreTest/Models/Declaration/BusFactoryTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/BusFactoryTest.cs index a2e7a2b00d44a8157575771b726e5ebf5f6e042e..646c41f87887d369f4aa1d705129376836d1bc65 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/BusFactoryTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/BusFactoryTest.cs @@ -6,6 +6,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; @@ -52,12 +53,10 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration //? new XMLDeclarationInputDataProvider(relativeJobPath, true) : JSONInputDataFactory.ReadJsonJob(jobFile); var sumContainer = new SummaryDataContainer(writer); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - SumData = sumContainer, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.SumData = sumContainer; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(sumContainer); @@ -87,12 +86,10 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration ? xmlInputReader.CreateDeclaration(jobFile) //? new XMLDeclarationInputDataProvider(relativeJobPath, true) : JSONInputDataFactory.ReadJsonJob(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; - + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; + var jobContainer = new JobContainer(new SummaryDataContainer(writer)); //var runs = factory.SimulationRuns().ToArray(); diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs index cab51b8904409611d3ead83d5da6958a45a0e8e4..4cd2d408b38317697d8703a430feacf56cf45513 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs @@ -12,6 +12,7 @@ using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.OutputData.XML; @@ -65,10 +66,9 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration.DataAdapter var sumData = new SummaryDataContainer(null); var jobContainer = new JobContainer(sumData); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, null, xmlReport) { - WriteModalResults = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, null, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); // no need to run the simulation, we only check whether the meta-data is correct, no results are considered diff --git a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs index 1d3ff4dffd7fa6b55bbc0532b0aa539605b131e3..c96e6511929e51e419c43082cd3b20c4a3dac897 100644 --- a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs +++ b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs @@ -27,6 +27,7 @@ using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery; @@ -128,12 +129,10 @@ namespace TUGraz.VectoCore.Tests.Models.EngineeringMode : JSONInputDataFactory.ReadJsonJob(jobFile); var sumContainer = new SummaryDataContainer(writer); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - SumData = sumContainer, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; + factory.SumData = sumContainer; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(sumContainer); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs index 190a47b6deb99a84a88d9cf41fe91d35b8cc69c7..f068ee90622f5bbf79b50e93d9e3d6e993055477 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs @@ -51,6 +51,7 @@ using TUGraz.VectoCore.Tests.Models.SimulationComponent; using TUGraz.VectoCore.Tests.Utils; using NUnit.Framework; using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; // ReSharper disable ObjectCreationAsStatement @@ -277,7 +278,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var inputData = JSONInputDataFactory.ReadJsonJob( @"TestData\Generic Vehicles\Declaration Mode\40t Long Haul Truck\40t_Long_Haul_Truck.vecto"); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); jobContainer.AddRuns(runsFactory); } @@ -292,7 +293,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var inputData = JSONInputDataFactory.ReadJsonJob(@"TestData\Generic Vehicles\Engineering Mode\24t Coach\24t Coach.vecto"); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); jobContainer.AddRuns(runsFactory); } @@ -305,7 +306,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var jobContainer = new JobContainer(sumData); var inputData = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\40t_Long_Haul_Truck_wrong_AUX.vecto"); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); AssertHelper.Exception<VectoException>(() => jobContainer.AddRuns(runsFactory)); } diff --git a/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs index 3b526ac26503e136c935f27dc50d078dd0490842..d31b86a035075047c37c57e80dfe8b8800575b46 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs @@ -39,6 +39,7 @@ using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Tests.Models.Simulation @@ -87,7 +88,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var inputDataProvider = xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null) { Validate = false }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); + factory.Validate = false; var runs = factory.SimulationRuns().ToArray(); Assert.AreEqual(10, runs.Length); @@ -98,7 +100,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation { var inputDataProvider = xmlInputReader.CreateDeclaration(SampleVehicleDecl); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null) { Validate = false }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null); + factory.Validate = false; var runs = factory.SimulationRuns().ToArray(); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs index 2df4d2c4ea6b2521cc50fb659eae9567505b127c..6ad0a6d25d3ece17af0183cc03e6b2dfaf2a15bb 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs @@ -39,6 +39,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData.FileIO; using NUnit.Framework; using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Tests.Utils; namespace TUGraz.VectoCore.Tests.Models.Simulation @@ -64,7 +65,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var fileWriter = new FileOutputWriter(DeclarationJobFile); var inputData = JSONInputDataFactory.ReadJsonJob(DeclarationJobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); //factory.DataReader.SetJobFile(DeclarationJobFile); @@ -115,7 +116,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var fileWriter = new FileOutputWriter(EngineeringJobFile); var inputData = JSONInputDataFactory.ReadJsonJob(EngineeringJobFile); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); var run = factory.SimulationRuns().First(); @@ -132,7 +133,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation public void TestDistanceCycleInVTPEngineering() { var inputData = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\VTPModeWithDistanceCycle.vecto"); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, null); AssertHelper.Exception<VectoException>(() => factory.SimulationRuns().ToArray(), "Distance-based cycle can not be simulated in VerificationTest mode"); } @@ -142,7 +143,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation public void TestDistanceCycleInEngineOnly() { var inputData = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\EngineOnlyJobWithDistanceCycle.vecto"); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, null); AssertHelper.Exception<VectoException>(() => factory.SimulationRuns().ToArray(), "Distance-based cycle can not be simulated in EngineOnly mode"); } @@ -151,7 +152,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation public void TestMeasuredSpeedCycleInEngineOnly() { var inputData = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\EngineOnlyJobWithMeasuredCycle.vecto"); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, null); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, null); AssertHelper.Exception<VectoException>(() => { var container = new JobContainer(null); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs index fd782aaed4c0e9a95d953ad23803bd23b8e7caeb..4d76763414f46e796a8a0d35320ab92e767ae72f 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs @@ -44,6 +44,7 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.OutputData.FileIO; @@ -262,7 +263,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation public void CreateJobWithLossMapEfficiency_Engineering() { var dataProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\12t Delivery Truck Engineering Efficiency.vecto"); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, dataProvider, null); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, dataProvider, null); var jobContainer = new JobContainer(null); jobContainer.AddRuns(runsFactory); } @@ -277,7 +278,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var fileWriter = new FileOutputWriter(jobFileName); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFileName); - var factory = new SimulatorFactory(ExecutionMode.Engineering, dataProvider, fileWriter); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, dataProvider, fileWriter); var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); jobContainer.Execute(); @@ -295,7 +296,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation public void CreateJobWith_Axle_LossMapEfficiency_Declaration() { var dataProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\40t_Long_Haul_Truck with AxleEfficiency.vecto"); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, null); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, null); var jobContainer = new JobContainer(null); AssertHelper.Exception<InvalidFileFormatException>(() => jobContainer.AddRuns(runsFactory)); @@ -308,7 +309,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation public void CreateJobWith_Gear_LossMapEfficiency_Declaration() { var dataProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\40t_Long_Haul_Truck with GearEfficiency.vecto"); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, null); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, null); var jobContainer = new JobContainer(null); AssertHelper.Exception<InvalidFileFormatException>(() => jobContainer.AddRuns(runsFactory)); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs index a04c2c93295a1901e62e51cb2e25ddba96dfdfad..478489c4b6ff93a123bf0a4b9f484dc8d7f362d6 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs @@ -44,6 +44,7 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; @@ -374,7 +375,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var jobContainer = new JobContainer(sumWriter); var inputData = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); runsFactory.ActualModalData = actualModData; runsFactory.WriteModalResults = true; diff --git a/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs index feb58293ab45e117d7f28e3db711b2c76f8762aa..9f02660a5851fb2b012a36c113b346332e61c4d4 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs @@ -49,6 +49,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl; using NUnit.Framework; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; namespace TUGraz.VectoCore.Tests.Models.Simulation { @@ -195,7 +196,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var jobContainer = new JobContainer(sumWriter); var inputData = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); jobContainer.AddRuns(runsFactory); jobContainer.Execute(); @@ -224,7 +225,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var jobContainer = new JobContainer(sumWriter); var inputData = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); jobContainer.AddRuns(runsFactory); jobContainer.Execute(); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/ShiftStrategyV2Test.cs b/VectoCore/VectoCoreTest/Models/Simulation/ShiftStrategyV2Test.cs index 6cce70c95eff8275ab29dffea6752f7866d6989a..5133157a4c668c716bc7863ae2dc8e25529ad4a3 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/ShiftStrategyV2Test.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/ShiftStrategyV2Test.cs @@ -8,6 +8,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -40,11 +41,9 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var relativeJobPath = jobFile; var writer = new FileOutputWriter(relativeJobPath); var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; Assert.NotNull(((IEngineeringInputDataProvider)inputData).DriverInputData.GearshiftInputData); var jobContainer = new JobContainer(new MockSumWriter()); @@ -312,11 +311,9 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var relativeJobPath = jobName; var writer = new FileOutputWriter(relativeJobPath); var inputData = JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var sumWriter = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumWriter); @@ -335,11 +332,9 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var relativeJobPath = jobName; var writer = new FileOutputWriter(relativeJobPath); var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new MockSumWriter()); var runs = factory.SimulationRuns().ToArray(); @@ -354,11 +349,9 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var relativeJobPath = jobName; var writer = new FileOutputWriter(relativeJobPath); var inputData = Path.GetExtension(relativeJobPath) == ".xml" ? xmlInputReader.CreateDeclaration(relativeJobPath) : JSONInputDataFactory.ReadJsonJob(relativeJobPath); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/SimulationPreprocessingTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/SimulationPreprocessingTest.cs index f154d32a4a84e693d3e4313fcc84e6886e0fc211..9dd063f106fce5e053b1bd37f2b7d70e93008849 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/SimulationPreprocessingTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/SimulationPreprocessingTest.cs @@ -10,6 +10,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -48,12 +49,11 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = Path.GetExtension(jobFile) == ".xml" ? xmlInputReader.CreateDeclaration(jobFile) : JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); @@ -89,12 +89,11 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); @@ -123,12 +122,11 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(mode, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); @@ -232,12 +230,11 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = true, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = true; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); diff --git a/VectoCore/VectoCoreTest/Models/Simulation/SimulationTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/SimulationTests.cs index 32122b7005c4b72c6b040a2bb985a22b5c2b7a9e..fa2df82d7ed1dd4d5607416c47dee22fa35c4a3e 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/SimulationTests.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/SimulationTests.cs @@ -40,6 +40,7 @@ using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Utils; using NUnit.Framework; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; namespace TUGraz.VectoCore.Tests.Models.Simulation { @@ -108,9 +109,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var sumWriter = new SummaryDataContainer(fileWriter); var inputData = JSONInputDataFactory.ReadJsonJob(EngineOnlyJob); - var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter) { - SumData = sumWriter - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + factory.SumData = sumWriter; return factory.SimulationRuns().First(); } @@ -124,7 +124,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var jobContainer = new JobContainer(sumWriter); var inputData = JSONInputDataFactory.ReadJsonJob(jobFile); - var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); jobContainer.AddRuns(runsFactory); jobContainer.Execute(); diff --git a/VectoCore/VectoCoreTest/Reports/ActualModalSimulationDataTest.cs b/VectoCore/VectoCoreTest/Reports/ActualModalSimulationDataTest.cs index 5b6bd32989afca54441b1f008b06380735226dff..cac3aadf45e2b84f1d53a0e95765dd4f728185a8 100644 --- a/VectoCore/VectoCoreTest/Reports/ActualModalSimulationDataTest.cs +++ b/VectoCore/VectoCoreTest/Reports/ActualModalSimulationDataTest.cs @@ -34,6 +34,7 @@ using NUnit.Framework; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; @@ -59,7 +60,7 @@ namespace TUGraz.VectoCore.Tests.Reports var jobContainer = new JobContainer(sumData); var inputData = JSONInputDataFactory.ReadJsonJob(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, fileWriter); factory.WriteModalResults = true; factory.ActualModalData = true; diff --git a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs index c6680bc1cba6c5891213cbc1686de7832105357d..76a6f57b12d74eb29eb97738642fc3c08c67ddfb 100644 --- a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs +++ b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs @@ -51,6 +51,7 @@ using System.IO; using Ninject; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Tests.Models.Simulation; namespace TUGraz.VectoCore.Tests.Reports @@ -166,9 +167,8 @@ namespace TUGraz.VectoCore.Tests.Reports { var writer = new FileOutputWriter(filename); var inputData = xmlInputReader.CreateDeclaration(filename); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factory); @@ -312,7 +312,8 @@ namespace TUGraz.VectoCore.Tests.Reports var jobContainer = new JobContainer(sumData); var inputData = JSONInputDataFactory.ReadJsonJob(jobName); - var runsFactory = new SimulatorFactory(mode, inputData, fileWriter) { WriteModalResults = true }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, inputData, fileWriter); + runsFactory.WriteModalResults = true; jobContainer.AddRuns(runsFactory); var modData = new List<Tuple<ModalResults, double>>(); @@ -614,7 +615,8 @@ namespace TUGraz.VectoCore.Tests.Reports var inputData = JSONInputDataFactory.ReadJsonJob(jobName); var runsFactory = - new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter) { WriteModalResults = true }; + SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter); + runsFactory.WriteModalResults = true; jobContainer.AddRuns(runsFactory); var modData = new List<Tuple<ModalResults, Meter>>(); diff --git a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs index c752058c0926c3108460a2f9a4fd13b4650647d1..b2beefd81de185eb27c7083ea3a6c3f762362179 100644 --- a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs +++ b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs @@ -51,6 +51,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.Models.SimulationComponent.Data; namespace TUGraz.VectoCore.Tests.Reports @@ -235,10 +236,9 @@ namespace TUGraz.VectoCore.Tests.Reports File.Delete(writer.SumFileName); } - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) { - WriteModalResults = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport); + runsFactory.WriteModalResults = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); jobContainer.Execute(); jobContainer.WaitFinished(); @@ -292,10 +292,9 @@ namespace TUGraz.VectoCore.Tests.Reports var writer = new FileOutputWriter(jobFile); var inputData = xmlInputReader.CreateDeclaration(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var sumWriter = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumWriter); @@ -324,10 +323,9 @@ namespace TUGraz.VectoCore.Tests.Reports var writer = new FileOutputWriter(jobFile); var inputData = xmlInputReader.CreateDeclaration(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - ActualModalData = true - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; + factory.ActualModalData = true; var sumWriter = new SummaryDataContainer(writer); var jobContainer = new JobContainer(sumWriter); diff --git a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs index 422e16c9762caf89a0367b3ef515c38e776ade62..cad4740bce7fa4013c6d113f12092b17a5cd1271 100644 --- a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs +++ b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs @@ -7,6 +7,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; @@ -26,7 +27,7 @@ namespace TUGraz.VectoCore.Tests.Utils var filename = Guid.NewGuid().ToString().Substring(0, 20); var writerAsm = new FileOutputVIFWriter(filename, 0); - var factoryAsm = new SimulatorFactory(ExecutionMode.Declaration, inputDataAsm, writerAsm); + var factoryAsm = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataAsm, writerAsm); var jobContainer = new JobContainer(new MockSumWriter()); jobContainer.AddRuns(factoryAsm); jobContainer.Execute(); diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs index f333143bc0587336835d882229873095f6e40667..3b8acaf915aac426e8528049a394595062d20d59 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs @@ -52,6 +52,7 @@ using NUnit.Framework; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; namespace TUGraz.VectoCore.Tests.XML { @@ -413,7 +414,7 @@ namespace TUGraz.VectoCore.Tests.XML var jobContainer = new JobContainer(sumData); var dataProvider = xmlInputReader.CreateDeclaration(reader); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); runsFactory.WriteModalResults = true; jobContainer.AddRuns(runsFactory); @@ -574,7 +575,7 @@ namespace TUGraz.VectoCore.Tests.XML var inputDataProvider = xmlInputReader.CreateDeclaration(modified); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, new FileOutputWriter("dummy")); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, new FileOutputWriter("dummy")); var jobContainer = new JobContainer(null); jobContainer.AddRuns(factory); jobContainer.Execute(); diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs index 6cdfeddc2fa7b8d5fca51cbcd5d303ebffda55bd..e3772a80ce8b059a7283e5c07dac95f3f3b11fe4 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs @@ -8,6 +8,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData.FileIO; namespace TUGraz.VectoCore.Tests.XML @@ -113,12 +114,11 @@ namespace TUGraz.VectoCore.Tests.XML //var sumWriter = new SummaryDataContainer(fileWriter); //var jobContainer = new JobContainer(sumWriter); var dataProvider = xmlInputReader.CreateDeclaration(XmlReader.Create(filename)); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = false, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = false; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; var runs = runsFactory.SimulationRuns().ToArray(); Assert.IsTrue(runs.Length > 0); diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs index 5c9451cab2c9d0d079a328d377224f0429559af8..71ec84c6b50643ba8f083a27e149cf7fa4c17b07 100644 --- a/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs @@ -39,6 +39,7 @@ using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Tests.Models.Simulation; @@ -131,11 +132,9 @@ namespace TUGraz.VectoCore.Tests.XML var writer = new FileOutputWriter(jobFile); var inputData = xmlInputReader.CreateDeclaration(jobFile); - var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { - WriteModalResults = true, - //ActualModalData = true, - Validate = false - }; + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); + factory.WriteModalResults = true; //ActualModalData = true, + factory.Validate = false; var jobContainer = new JobContainer(new SummaryDataContainer(writer)); jobContainer.AddRuns(factory); jobContainer.Execute(); @@ -164,12 +163,11 @@ namespace TUGraz.VectoCore.Tests.XML //var sumWriter = new SummaryDataContainer(fileWriter); //var jobContainer = new JobContainer(sumWriter); var dataProvider = xmlInputReader.CreateDeclaration(XmlReader.Create(filename)); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = false, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = false; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; var runs = runsFactory.SimulationRuns().ToArray(); Assert.IsTrue(runs.Length > 0); diff --git a/VectoCore/VectoCoreTest/XML/XMLReportTest.cs b/VectoCore/VectoCoreTest/XML/XMLReportTest.cs index d88ce535c17b527c5cc484ba83803e2f8543feb9..769446aa76aac446623200148efdce797358f860 100644 --- a/VectoCore/VectoCoreTest/XML/XMLReportTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLReportTest.cs @@ -37,6 +37,7 @@ using NUnit.Framework; using TUGraz.VectoCommon.Models; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; using TUGraz.VectoCore.Utils; @@ -78,12 +79,11 @@ namespace TUGraz.VectoCore.Tests.XML var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var dataProvider = xmlInputReader.CreateDeclaration(XmlReader.Create(filename)); - var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) { - ModalResults1Hz = false, - WriteModalResults = false, - ActualModalData = false, - Validate = false, - }; + var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter); + runsFactory.ModalResults1Hz = false; + runsFactory.WriteModalResults = false; + runsFactory.ActualModalData = false; + runsFactory.Validate = false; jobContainer.AddRuns(runsFactory); jobContainer.Execute(); jobContainer.WaitFinished();