Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Select Git revision
  • 82f7ef8396fc517ed31780f530ae3e4dc5d3db4f
  • stable default
  • fix-h2-ice-bus
  • feat-fchv-bus
  • amdm3/develop
  • powertrains-multiple-axles
  • issue-1039
  • amdm3/main
  • test/nuget_publish
  • IEPC-experiments
  • amdm2/main
  • amdm2/develop
  • aptngearbox-not-auto
  • playground
  • official/main
  • official/develop
  • issue-templates
  • pdf-reports
  • HEV-timeruns-dev
  • timerun-empower-hybrids
  • timerun-pwheel-hybrids
  • Release/v5.0.3
  • Release/v5.0.1
  • Release/5.0.0-RC
  • Nuget/v0.11.4-DEV
  • Release/v0.11.4-DEV
  • Release/4.3.4-DEV
  • Release/4.3.3
  • Release/4.3.2-RC
  • Release/v4.3.0-DEV
  • Release/4.2.7
  • XMLConverterTool/4.2.6.0
  • Release/4.2.6-RC
  • Release/v4.2.5
  • Release/v4.2.3
  • Release/v4.2.2.3539-RC
  • Release/v4.2.1.3469
  • Release/v0.11.2.3456-DEV
  • Release/v4.2.0.3448-RC
  • Release/v4.1.3.3415
  • Release/v4.1.1.3413
41 results

SteeringPump.cs

  • Forked from VECTO / VECTO Sim
    11553 commits behind the upstream repository.
    user avatar
    Michael KRISPER authored
    implemented steering pump auxiliaries in declaration mode, renamed declaration classes (removed declaration from name, because it is already in namespace)
    82f7ef83
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    SteeringPump.cs 2.02 KiB
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using TUGraz.VectoCore.Utils;
    
    namespace TUGraz.VectoCore.Models.Declaration
    {
    	public class SteeringPump : LookupData<MissionType, string, string, Watt>
    	{
    		private readonly SteeringPumpTechnologies _technologies = new SteeringPumpTechnologies();
    
    		private readonly Dictionary<Tuple<MissionType, string>, Watt[]> _data =
    			new Dictionary<Tuple<MissionType, string>, Watt[]>();
    
    		public override Watt Lookup(MissionType mission, string hdvClass, string technology)
    		{
    			var shares = _data[Tuple.Create(mission, hdvClass)];
    			var sum = 0.SI<Watt>();
    			var factors = _technologies.Lookup(technology);
    			for (var i = 0; i < 4; i++) {
    				sum += shares[i] * factors[i];
    			}
    			return sum;
    		}
    
    
    		protected override string ResourceId
    		{
    			get { return "TUGraz.VectoCore.Resources.Declaration.VAUX.SP-Table.csv"; }
    		}
    
    		protected override void ParseData(DataTable table)
    		{
    			_data.Clear();
    			NormalizeTable(table);
    
    			foreach (DataRow row in table.Rows) {
    				var hdvClass = row.Field<string>("hdvclass/powerdemandpershare");
    				foreach (MissionType mission in Enum.GetValues(typeof(MissionType))) {
    					var values = row.Field<string>(mission.ToString().ToLower()).Split('/').ToDouble();
    					values = values.Concat(Enumerable.Repeat(0.0, 3));
    
    					_data[Tuple.Create(mission, hdvClass)] = values.Take(4).SI<Watt>().ToArray();
    				}
    			}
    		}
    
    		public class SteeringPumpTechnologies : LookupData<string, double[]>
    		{
    			protected override string ResourceId
    			{
    				get { return "TUGraz.VectoCore.Resources.Declaration.VAUX.SP-Tech.csv"; }
    			}
    
    			protected override void ParseData(DataTable table)
    			{
    				Data.Clear();
    				foreach (DataRow row in table.Rows) {
    					var tech = row.Field<string>("Scaling Factors");
    					var factors = new[] { row.ParseDouble("U"), row.ParseDouble("F"), row.ParseDouble("B"), row.ParseDouble("S") };
    					Data[tech] = factors;
    				}
    			}
    
    			public override double[] Lookup(string tech)
    			{
    				return Data[tech];
    			}
    		}
    	}
    }