Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core, editoast: rename rolling stock to physics consist #9665

Merged
merged 1 commit into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ import fr.sncf.osrd.train.RollingStock.*

/** Parse the rolling stock model into something the backend can work with */
fun parseRawRollingStock(
rawRollingStock: PhysicsRollingStockModel,
rawPhysicsConsist: PhysicsConsistModel,
loadingGaugeType: RJSLoadingGaugeType = RJSLoadingGaugeType.G1,
rollingStockSupportedSignalingSystems: List<String> = listOf(),
): RollingStock {
// Parse effort_curves
val rawModes = rawRollingStock.effortCurves.modes
val rawModes = rawPhysicsConsist.effortCurves.modes

if (!rawModes.containsKey(rawRollingStock.effortCurves.defaultMode))
if (!rawModes.containsKey(rawPhysicsConsist.effortCurves.defaultMode))
throw OSRDError.newInvalidRollingStockError(
ErrorType.InvalidRollingStockDefaultModeNotFound,
rawRollingStock.effortCurves.defaultMode
rawPhysicsConsist.effortCurves.defaultMode
)

// Parse tractive effort curves modes
Expand All @@ -29,28 +29,28 @@ fun parseRawRollingStock(
modes[key] = parseModeEffortCurves(value, "effort_curves.modes.$key")
}

val rollingResistance = parseRollingResistance(rawRollingStock.rollingResistance)
val rollingResistance = parseRollingResistance(rawPhysicsConsist.rollingResistance)

return RollingStock(
"placeholder_name",
rawRollingStock.length.distance.meters,
rawRollingStock.mass.toDouble(),
rawRollingStock.inertiaCoefficient,
rawPhysicsConsist.length.distance.meters,
rawPhysicsConsist.mass.toDouble(),
rawPhysicsConsist.inertiaCoefficient,
rollingResistance.A,
rollingResistance.B,
rollingResistance.C,
rawRollingStock.maxSpeed,
rawRollingStock.startupTime.seconds,
rawRollingStock.startupAcceleration,
rawRollingStock.comfortAcceleration,
rawRollingStock.constGamma,
rawPhysicsConsist.maxSpeed,
rawPhysicsConsist.startupTime.seconds,
rawPhysicsConsist.startupAcceleration,
rawPhysicsConsist.comfortAcceleration,
rawPhysicsConsist.constGamma,
loadingGaugeType,
modes,
rawRollingStock.effortCurves.defaultMode,
rawRollingStock.basePowerClass,
rawRollingStock.powerRestrictions,
rawRollingStock.electricalPowerStartupTime?.seconds,
rawRollingStock.raisePantographTime?.seconds,
rawPhysicsConsist.effortCurves.defaultMode,
rawPhysicsConsist.basePowerClass,
rawPhysicsConsist.powerRestrictions,
rawPhysicsConsist.electricalPowerStartupTime?.seconds,
rawPhysicsConsist.raisePantographTime?.seconds,
rollingStockSupportedSignalingSystems.toTypedArray(),
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class SimulationEndpoint(
electricalProfileSetManager.getProfileMap(request.electricalProfileSetId)

// Parse rolling stocks
val rollingStock = parseRawRollingStock(request.rollingStock)
val rollingStock = parseRawRollingStock(request.physicsConsist)

// Parse path
val chunkPath = makeChunkPath(infra.rawInfra, request.path.trackSectionRanges)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class SimulationRequest(
@Json(name = "speed_limit_tag") val speedLimitTag: String?,
@Json(name = "power_restrictions") val powerRestrictions: List<SimulationPowerRestrictionItem>,
val options: TrainScheduleOptions,
@Json(name = "rolling_stock") val rollingStock: PhysicsRollingStockModel,
@Json(name = "physics_consist") val physicsConsist: PhysicsConsistModel,
@Json(name = "electrical_profile_set_id") val electricalProfileSetId: String?
) {
companion object {
Expand All @@ -57,7 +57,7 @@ enum class AllowanceDistribution {
}
}

class PhysicsRollingStockModel(
class PhysicsConsistModel(
@Json(name = "effort_curves") val effortCurves: EffortCurve,
@Json(name = "base_power_class") val basePowerClass: String?,
val length: Length<RollingStock>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ class STDCMEndpointV2(private val infraManager: InfraManager) : Take {
buildTemporarySpeedLimitManager(infra, request.temporarySpeedLimits)
val rollingStock =
parseRawRollingStock(
request.rollingStock,
request.physicsConsist,
request.rollingStockLoadingGauge,
request.rollingStockSupportedSignalingSystems
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import fr.sncf.osrd.api.api_v2.WorkSchedule
import fr.sncf.osrd.api.api_v2.conflicts.TrainRequirementsRequest
import fr.sncf.osrd.api.api_v2.standalone_sim.MarginValue
import fr.sncf.osrd.api.api_v2.standalone_sim.MarginValueAdapter
import fr.sncf.osrd.api.api_v2.standalone_sim.PhysicsRollingStockModel
import fr.sncf.osrd.api.api_v2.standalone_sim.PhysicsConsistModel
import fr.sncf.osrd.railjson.schema.rollingstock.Comfort
import fr.sncf.osrd.railjson.schema.rollingstock.RJSLoadingGaugeType
import fr.sncf.osrd.railjson.schema.rollingstock.RJSRollingResistance
Expand All @@ -25,7 +25,7 @@ class STDCMRequestV2(
@Json(name = "expected_version") var expectedVersion: String,

// Rolling stock
@Json(name = "rolling_stock") val rollingStock: PhysicsRollingStockModel,
@Json(name = "physics_consist") val physicsConsist: PhysicsConsistModel,

// Pathfinding inputs
/// List of waypoints. Each waypoint is a list of track offsets
Expand Down
2 changes: 1 addition & 1 deletion editoast/src/core/simulation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ pub struct SimulationRequest {
pub speed_limit_tag: Option<String>,
pub power_restrictions: Vec<SimulationPowerRestrictionItem>,
pub options: TrainScheduleOptions,
pub rolling_stock: PhysicsConsist,
pub physics_consist: PhysicsConsist,
pub electrical_profile_set_id: Option<i64>,
}

Expand Down
2 changes: 1 addition & 1 deletion editoast/src/core/stdcm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub struct Request {
/// The comfort of the train
pub comfort: Comfort,
pub speed_limit_tag: Option<String>,
pub rolling_stock: PhysicsConsist,
pub physics_consist: PhysicsConsist,

// STDCM search parameters
pub trains_requirements: HashMap<i64, TrainRequirements>,
Expand Down
2 changes: 1 addition & 1 deletion editoast/src/views/timetable/stdcm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ async fn stdcm(
rolling_stock_supported_signaling_systems: rolling_stock
.supported_signaling_systems
.clone(),
rolling_stock: PhysicsConsistParameters {
physics_consist: PhysicsConsistParameters {
max_speed: stdcm_request.max_speed,
total_length: stdcm_request.total_length,
total_mass: stdcm_request.total_mass,
Expand Down
3 changes: 2 additions & 1 deletion editoast/src/views/train_schedule.rs
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,8 @@ fn build_simulation_request(
speed_limit_tag: train_schedule.speed_limit_tag.clone(),
power_restrictions,
options: train_schedule.options.clone(),
rolling_stock: PhysicsConsistParameters::with_traction_engine(rolling_stock.into()).into(),
physics_consist: PhysicsConsistParameters::with_traction_engine(rolling_stock.into())
.into(),
electrical_profile_set_id,
}
}
Expand Down
Loading