|  | 
| virtual double | getResistance (double trainSpeed) | 
|  | Gets the resistance applied on only this vehicle. 
 | 
|  | 
| virtual void | resetTimeStepConsumptions () | 
|  | Resets the energy consumptions data for the current time step. 
 | 
|  | 
| virtual void | setCurrentWeight (double newCurrentWeight) | 
|  | sets the current weight of the vehicle 
 | 
|  | 
| virtual std::pair< bool, double > | consumeFuelDiesel (double EC_kwh, double dieselConversionFactor, double dieselDensity) | 
|  | consume the locomotive diesel fuel. 
 | 
|  | 
| virtual std::pair< bool, double > | consumeFuelBioDiesel (double EC_kwh, double bioDieselConversionFactor, double bioDieselDensity) | 
|  | consume the locomotive bio diesel fuel. 
 | 
|  | 
| virtual std::pair< bool, double > | consumeElectricity (double timeStep, double EC_kwh) | 
|  | consume any source of electricity in the locomotive; either the catenary or the batteries. 
 | 
|  | 
| virtual std::pair< bool, double > | consumeFuelHydrogen (double EC_kwh, double hydrogenConversionFactor, double hydrogenDensity) | 
|  | consume the locomotive hydrogen fuel. 
 | 
|  | 
| virtual double | refillBattery (double timeStep, double EC_kwh) | 
|  | refill the locomtoive battery 
 | 
|  | 
| virtual bool | rechargeCatenary (double EC_kwh) | 
|  | Rechage catenary and grid system if they are available. 
 | 
|  | 
| virtual std::pair< bool, double > | consumeFuel (double timeStep, double trainSpeed, double EC_kwh, double LocomotiveVirtualTractivePower=std::numeric_limits< double >::quiet_NaN(), double dieselConversionFactor=EC::DefaultDieselConversionFactor, double biodieselConversionFactor=EC::DefaultBiodieselConversionFactor, double hydrogenConversionFactor=EC::DefaultHydrogenConversionFactor, double dieselDensity=EC::DefaultDieselDensity, double biodieselDensity=EC::DefaultBioDieselDensity, double hydrogenDensity=EC::DefaultHydrogenDensity) | 
|  | Consume fuel or battery from the vehicle. 
 | 
|  | 
| void | setBattery (double maxCharge, double initialChargePercentage, double depthOfDischarge, double batteryCRate, double maxRechargeSOC=0.9, double minRechargeSOC=0.5) | 
|  | Sets the battery properties. 
 | 
|  | 
| double | getBatteryMaxCharge () const | 
|  | Gets the maximum charge of the battery. 
 | 
|  | 
| void | setBatteryMaxCharge (double newMaxCharge) | 
|  | Sets the maximum charge of the battery. 
 | 
|  | 
| double | getBatteryInitialCharge () const | 
|  | Gets the initial charge of the battery. 
 | 
|  | 
| void | setBatteryInitialCharge (double newInitialCharge) | 
|  | Sets the initial charge of the battery. 
 | 
|  | 
| double | getBatteryCurrentCharge () const | 
|  | Gets the current charge of the battery. 
 | 
|  | 
| std::pair< bool, double > | consumeBattery (double timeStep, double consumedCharge) | 
|  | Consumes charge from the battery. 
 | 
|  | 
| double | rechargeBatteryForHybrids (double timeStep, double recharge) | 
|  | Recharges the battery for hybrid vehicles. 
 | 
|  | 
| double | rechargeBatteryByRegeneratedEnergy (double timeStep, double recharge) | 
|  | Recharges the battery by regenerated energy. 
 | 
|  | 
| double | getBatteryStateOfCharge () const | 
|  | Gets the state of charge of the battery. 
 | 
|  | 
| double | getBatteryDOD () const | 
|  | Gets the depth of discharge of the battery. 
 | 
|  | 
| void | setBatteryDOD (double newBatteryDOD) | 
|  | Sets the depth of discharge of the battery. 
 | 
|  | 
| double | getBatteryCRate () const | 
|  | Gets the C-Rate of discharge for the battery. 
 | 
|  | 
| void | setBatteryCRate (double newBatteryCRate) | 
|  | Sets the C-Rate of discharge for the battery. 
 | 
|  | 
| bool | isBatteryDrainable (double requiredCharge) | 
|  | Checks if the battery can be drained by the required charge. 
 | 
|  | 
| bool | isBatteryRechargable () | 
|  | Checks if the battery can be recharged. 
 | 
|  | 
| double | getBatteryMaxDischarge (double timeStep) | 
|  | Gets the maximum discharge of the battery. 
 | 
|  | 
| double | getBatteryMaxRecharge (double timeStep) | 
|  | Gets the maximum recharge of the battery. 
 | 
|  | 
| bool | isRechargeRequired () const | 
|  | Checks if the battery requires a recharge. 
 | 
|  | 
| double | getBatteryRechargeSOCUpperBound () const | 
|  | Gets the upper bound of the battery's recharge state of charge. 
 | 
|  | 
| void | setBatteryRechargeSOCUpperBound (double newBatteryMaxSOC) | 
|  | Sets the upper bound of the battery's recharge state of charge. 
 | 
|  | 
| double | getBatteryRechargeSOCLowerBound () const | 
|  | Gets the lower bound of the battery's recharge state of charge. 
 | 
|  | 
| void | setBatteryRechargeSOCLowerBound (double newBatteryRechargeSOCLowerBound) | 
|  | Sets the lower bound of the battery's recharge state of charge. 
 | 
|  | 
| double | getBatteryCumEnergyConsumption () | 
|  | Gets the cumulative energy consumption for this battery only. 
 | 
|  | 
| double | getBatteryCumEnergyRegenerated () | 
|  | Gets the cumulative energy regenerated for this battery only. 
 | 
|  | 
| double | getBatteryCumNetEnergyConsumption () | 
|  | Gets the cumulative net energy consumption for this battery. 
 | 
|  | 
| bool | batteryHasCharge () | 
|  | Checks if the battery has enough charge. 
 | 
|  | 
| bool | IsBatteryExceedingThresholds () | 
|  | Checks if the battery exceeds certain thresholds. 
 | 
|  | 
| void | SetTank (double maxCapacity, double initialCapacityPercentage, double depthOfDischarge) | 
|  | Set the main properties of the tank (initialize the tank) 
 | 
|  | 
| double | getTankMaxCapacity () const | 
|  | Gets the maximum capacity of the tank. 
 | 
|  | 
| void | setTankMaxCapacity (double newMaxCapacity) | 
|  | Sets the maximum capacity of the tank. 
 | 
|  | 
| double | getTankInitialCapacity () const | 
|  | Gets the initial capacity of the tank. 
 | 
|  | 
| void | setTankInitialCapacity (double newInitialCapacityPercentage) | 
|  | Sets the initial capacity of the tank. 
 | 
|  | 
| double | getTankCurrentCapacity () const | 
|  | Gets the current capacity of the tank. 
 | 
|  | 
| double | consumeTank (double consumedAmount) | 
|  | Consumes fuel from the tank. 
 | 
|  | 
| double | getTankStateOfCapacity () const | 
|  | Gets the state of capacity of the tank. 
 | 
|  | 
| bool | isTankDrainable (double consumedAmount) | 
|  | Checks if the specified amount of fuel is drainable from the tank. 
 | 
|  | 
| double | getTankDOD () const | 
|  | Gets the depth of discharge of the tank. 
 | 
|  | 
| void | setTankDOD (double newTankDOD) | 
|  | Sets the depth of discharge of the tank. 
 | 
|  | 
| bool | tankHasFuel () | 
|  | Checks if the tank has fuel (current capacity > 0) 
 | 
|  | 
| double | getTankCumConsumedFuel () const | 
|  | Gets the total amount of fuel consumed from the tank. 
 | 
|  | 
Defines a train component base class. 
The train component could be a railcar or a locomotive.
- Author
- Ahmed 
- Date
- 2/14/2023