suboptimumg.compsim.models#

Pydantic models for competition simulation data structures.

class suboptimumg.compsim.models.CompetitionData[source]#

Bases: BaseModel

Parameters:
accel: ContinuousTrackData | DiscreteTrackData#
autoX: ContinuousTrackData | DiscreteTrackData#
endurance: ContinuousTrackData | DiscreteTrackData#
scoring: CompetitionScoring#
skidpad: ContinuousTrackData | DiscreteTrackData#
vehicle_model: VehicleModel#
class suboptimumg.compsim.models.CompetitionResults[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

accel

EventResults

Yes

autoX

EventResults

Yes

efficiency_points

float

Yes

endu_consumed_energy

float

Yes

endurance

EventResults

Yes

skidpad

EventResults

Yes

Parameters:
accel: EventResults#
autoX: EventResults#
efficiency_points: float#
endu_consumed_energy: float#
endurance: EventResults#
skidpad: EventResults#
property total_points: float#
class suboptimumg.compsim.models.CompetitionScoring[source]#

Bases: BaseModel

Parameters:
accel: EventScoring#
autoX: EventScoring#
efficiency: EfficiencyScoring#
endurance: EventScoring#
skidpad: EventScoring#
class suboptimumg.compsim.models.EfficiencyScoring[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

co2_min

float

Yes

co2_scaling

float

Yes

eff_max

float

Yes

eff_min_co2_your

float

Yes

fastest_lap_time

float

Yes

max_eff_points

float

Yes

max_time_scale

float

Yes

num_endurance_laps

int

Yes

Parameters:
  • num_endurance_laps (int)

  • max_eff_points (float)

  • co2_scaling (float)

  • fastest_lap_time (float)

  • co2_min (float)

  • eff_max (float)

  • max_time_scale (float)

  • eff_min_co2_your (float)

co2_min: float#
co2_scaling: float#
eff_max: float#
eff_min_co2_your: float#
fastest_lap_time: float#
max_eff_points: float#
max_time_scale: float#
num_endurance_laps: int#
class suboptimumg.compsim.models.EventResults[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

lapsim_results

LapsimResults

Yes

points

float

Yes

tyour

float

Yes

Parameters:
lapsim_results: LapsimResults#
points: float#
tyour: float#
class suboptimumg.compsim.models.EventScoring[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

event_best_time

float

Yes

max_point_gain

float

Yes

min_points

float

Yes

scale_time_ratio

float

Yes

worst_time_ratio

float

Yes

Parameters:
  • event_best_time (float)

  • worst_time_ratio (float)

  • min_points (float)

  • max_point_gain (float)

  • scale_time_ratio (float)

event_best_time: float#
max_point_gain: float#
min_points: float#
scale_time_ratio: float#
worst_time_ratio: float#
class suboptimumg.compsim.models.InternalData[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

cumulative_dist

ndarray[tuple[Any, …], dtype[float64]]

Yes

initial_velocity

float

Yes

per_seed

List[InternalDataSeedInfo]

Yes

seed_idx_list

ndarray[tuple[Any, …], dtype[integer]]

Yes

seed_v_list

ndarray[tuple[Any, …], dtype[float64]]

Yes

v_max_profile

ndarray[tuple[Any, …], dtype[float64]]

Yes

Parameters:
  • initial_velocity (float)

  • v_max_profile (ndarray[tuple[Any, ...], dtype[float64]])

  • seed_idx_list (ndarray[tuple[Any, ...], dtype[integer]])

  • cumulative_dist (ndarray[tuple[Any, ...], dtype[float64]])

  • seed_v_list (ndarray[tuple[Any, ...], dtype[float64]])

  • per_seed (List[InternalDataSeedInfo])

cumulative_dist: ndarray[tuple[Any, ...], dtype[float64]]#
initial_velocity: float#
per_seed: List[InternalDataSeedInfo]#
seed_idx_list: ndarray[tuple[Any, ...], dtype[integer]]#
seed_v_list: ndarray[tuple[Any, ...], dtype[float64]]#
v_max_profile: ndarray[tuple[Any, ...], dtype[float64]]#
class suboptimumg.compsim.models.InternalDataSeedInfo[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

acc_max_post

ndarray[tuple[Any, …], dtype[float64]]

No

None

acc_proposal

ndarray[tuple[Any, …], dtype[float64]]

No

None

grown_forward_mask

ndarray[tuple[Any, …], dtype[bool]]

No

None

p_proposal

ndarray[tuple[Any, …], dtype[float64]]

No

None

slower_mask

ndarray[tuple[Any, …], dtype[bool]]

No

None

v_max_post

ndarray[tuple[Any, …], dtype[float64]]

No

None

v_proposal

ndarray[tuple[Any, …], dtype[float64]]

No

None

Parameters:
  • v_proposal (ndarray[tuple[Any, ...], dtype[float64]])

  • acc_proposal (ndarray[tuple[Any, ...], dtype[float64]])

  • grown_forward_mask (ndarray[tuple[Any, ...], dtype[bool]])

  • slower_mask (ndarray[tuple[Any, ...], dtype[bool]])

  • v_max_post (ndarray[tuple[Any, ...], dtype[float64]])

  • acc_max_post (ndarray[tuple[Any, ...], dtype[float64]])

  • p_proposal (ndarray[tuple[Any, ...], dtype[float64]])

acc_max_post: ndarray[tuple[Any, ...], dtype[float64]]#
acc_proposal: ndarray[tuple[Any, ...], dtype[float64]]#
grown_forward_mask: ndarray[tuple[Any, ...], dtype[bool]]#
p_proposal: ndarray[tuple[Any, ...], dtype[float64]]#
slower_mask: ndarray[tuple[Any, ...], dtype[bool]]#
v_max_post: ndarray[tuple[Any, ...], dtype[float64]]#
v_proposal: ndarray[tuple[Any, ...], dtype[float64]]#
class suboptimumg.compsim.models.LapsimResults[source]#

Bases: BaseModel

Fields#

Field

Type

Required

Default

internal_data

InternalData | None

No

None

lap_accs

ndarray[tuple[Any, …], dtype[float64]]

Yes

lap_dxs

ndarray[tuple[Any, …], dtype[float64]]

Yes

lap_eff_motor_torques

ndarray[tuple[Any, …], dtype[float64]]

Yes

lap_powers

ndarray[tuple[Any, …], dtype[float64]]

Yes

lap_t

ndarray[tuple[Any, …], dtype[float64]]

Yes

lap_vels

ndarray[tuple[Any, …], dtype[float64]]

Yes

Parameters:
  • lap_t (ndarray[tuple[Any, ...], dtype[float64]])

  • lap_dxs (ndarray[tuple[Any, ...], dtype[float64]])

  • lap_vels (ndarray[tuple[Any, ...], dtype[float64]])

  • lap_accs (ndarray[tuple[Any, ...], dtype[float64]])

  • lap_powers (ndarray[tuple[Any, ...], dtype[float64]])

  • lap_eff_motor_torques (ndarray[tuple[Any, ...], dtype[float64]])

  • internal_data (InternalData | None)

internal_data: InternalData | None#
lap_accs: ndarray[tuple[Any, ...], dtype[float64]]#
lap_dxs: ndarray[tuple[Any, ...], dtype[float64]]#
lap_eff_motor_torques: ndarray[tuple[Any, ...], dtype[float64]]#
lap_powers: ndarray[tuple[Any, ...], dtype[float64]]#
lap_t: ndarray[tuple[Any, ...], dtype[float64]]#
lap_vels: ndarray[tuple[Any, ...], dtype[float64]]#
write_csv(filepath)[source]#
Parameters:

filepath (str | Path)

Return type:

None