30#include "trax/Configuration.h"
31#include "trax/Units.h"
59 struct TractionForceCharacteristic{
74 virtual TractionType GetTractionType() const noexcept = 0;
86 virtual
One operator()(
Velocity velocity ) const noexcept = 0;
107 virtual ~TractionForceCharacteristic() = default;
108 TractionForceCharacteristic( const TractionForceCharacteristic& ) = delete;
109 TractionForceCharacteristic( TractionForceCharacteristic&& ) = delete;
110 TractionForceCharacteristic& operator=( const TractionForceCharacteristic& ) = delete;
111 TractionForceCharacteristic& operator=( TractionForceCharacteristic&& ) = delete;
113 TractionForceCharacteristic() = default;
Value< Dimension< 1, 0, -1 > > Velocity
Velocity.
Definition DimensionedValues.h:331
Value< Dimension< 0, 0, 0 > > One
Dimensionless value.
Definition DimensionedValues.h:319
Value< Dimension< 1, 1, -2 > > Force
Force.
Definition DimensionedValues.h:333
Value< Dimension< 2, 1, -3 > > Power
Power.
Definition DimensionedValues.h:339
constexpr Real _mIs(Velocity v) noexcept
Dimensionated Values conversion functions.
Definition DimensionedValues.h:1395
Namespace of all the trax track libraries classes and methods.
Definition Collection.h:17
TractionType
Some exemplaric traction types.
Definition TractionForceCharacteristic.h:62
@ steam
hyperbolic decline from the start
Definition TractionForceCharacteristic.h:67
@ hydrodynamic
continuous linear gear settings
Definition TractionForceCharacteristic.h:65
@ electric
constant traction force followed by hyperbolic decline
Definition TractionForceCharacteristic.h:66
@ mechanic
mechanical gear with different discrete gear settings
Definition TractionForceCharacteristic.h:64
virtual Velocity MaximumVelocity() const noexcept=0
virtual void AddSpeedStep(Velocity velocity, One value)=0
Add a velocity/value pair to the characteristic.
virtual decltype(Power{}/Force{}) MaximumPowerFraction() const noexcept=0
virtual void GetSpeedSteps(std::vector< std::pair< Velocity, One > > &speedsteps) const =0
Get all the speedsteps.