diff --git a/src/TrainDefintion/Locomotive.h b/src/TrainDefintion/Locomotive.h index 5af40fd..57899f0 100644 --- a/src/TrainDefintion/Locomotive.h +++ b/src/TrainDefintion/Locomotive.h @@ -56,6 +56,8 @@ class Locomotive : public TrainComponent{ public: /** The max power of the locomotive in kw. */ double maxPower; + /** The tractive forces of this time step. */ + double currentTractiveForce = 0.0; /** Transmission effeciency of the locomotive */ double transmissionEfficiency; /** The type of the car */ @@ -123,8 +125,8 @@ class Locomotive : public TrainComponent{ int locomotiveMaxAchievableNotch = DefaultLocomotiveMaxAcheivableNotch, double locomotiveAuxiliaryPower_kw = EC::DefaultLocomotiveAuxiliaryPower, string locomotiveName = DefaultLocomotiveName, - double batteryMaxCharge_kwh = EC::DefaultLocomotiveBatteryMaxCharge, - double batteryInitialCharge_perc = EC::DefaultLocomotiveBatteryInitialCharge, + double batteryMaxCharge_kwh = std::numeric_limits::quiet_NaN(), // NAN value should be resolved latter + double batteryInitialCharge_perc = std::numeric_limits::quiet_NaN(), // NAN value should be resolved latter double tankMaxCapacity_kg = EC::DefaultLocomotiveTankMaxCapacityDiesel, double tankInitialCapacity_perc = EC::DefaultLocomotiveTankInitialCapacity, double batteryCRate = EC::DefaultLocomotiveBatteryCRate); @@ -318,13 +320,15 @@ class Locomotive : public TrainComponent{ * * @returns True if it succeeds, false if it fails. */ - std::pair consumeFuel(double timeStep, double trainSpeed, double EC_kwh, + std::pair consumeFuel(double timeStep, double trainSpeed, + double EC_kwh, + double LocomotiveVirtualTractivePower = std::numeric_limits::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) override; + double hydrogenDensity = EC::DefaultHydrogenDensity) override; /** * @brief Get the max energy the locomotive can regenerate.