suboptimumg.sweep.energy_grid_models#

class suboptimumg.sweep.energy_grid_models.EnergyGridConfig[source]#

Bases: BaseModel

Configuration for energy-constrained grid characterization.

Sweeps two design variables on a regular grid. At each grid point, coast_trigger is solved via bisection so that 22-lap endurance energy equals (pack capacity - buffer).

Fields#

Field

Type

Required

Default

Constraints

bisection_max_iter

int

No

40

gt=0

bisection_tol

float

No

0.05

gt=0

capacity_buffer_kwh

float

No

0.1

ge=0

coast_trigger_bounds

Tuple[float, float]

No

(5.0, 50.0)

var_1

SweepParamConfig

Yes

var_2

SweepParamConfig

Yes

Parameters:
  • var_1 (SweepParamConfig)

  • var_2 (SweepParamConfig)

  • coast_trigger_bounds (Tuple[float, float])

  • capacity_buffer_kwh (Annotated[float, Ge(ge=0)])

  • bisection_tol (Annotated[float, Gt(gt=0)])

  • bisection_max_iter (Annotated[int, Gt(gt=0)])

bisection_max_iter: int#
bisection_tol: float#
capacity_buffer_kwh: float#
coast_trigger_bounds: Tuple[float, float]#
var_1: SweepParamConfig#
var_2: SweepParamConfig#
class suboptimumg.sweep.energy_grid_models.EnergyGridData[source]#

Bases: BaseModel

Collected 2D grid results for all metrics.

Fields#

Field

Type

Required

Default

accel_pts

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

Yes

accel_t

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

Yes

autoX_pts

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

Yes

autoX_t

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

Yes

bisection_iters

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

Yes

capacity_kwh

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

Yes

efficiency_pts

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

Yes

endurance_pts

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

Yes

endurance_t

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

Yes

energy_density

float

Yes

feasible

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

Yes

net_energy_kwh

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

Yes

nominal_capacity

float

Yes

nominal_pack_weight

float

Yes

optimal_coast_trigger

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

Yes

skidpad_pts

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

Yes

skidpad_t

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

Yes

total_pts

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

Yes

var_1_list

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

Yes

var_1_name

str

Yes

var_2_list

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

Yes

var_2_name

str

Yes

vehicle_mass

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

Yes

Parameters:
  • var_1_name (str)

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

  • var_2_name (str)

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

  • nominal_pack_weight (float)

  • nominal_capacity (float)

  • energy_density (float)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • bisection_iters (ndarray[tuple[Any, ...], dtype[int64]])

accel_pts: ndarray[tuple[Any, ...], dtype[float64]]#
accel_t: ndarray[tuple[Any, ...], dtype[float64]]#
autoX_pts: ndarray[tuple[Any, ...], dtype[float64]]#
autoX_t: ndarray[tuple[Any, ...], dtype[float64]]#
bisection_iters: ndarray[tuple[Any, ...], dtype[int64]]#
capacity_kwh: ndarray[tuple[Any, ...], dtype[float64]]#
classmethod create(var_1_name, var_1_list, var_2_name, var_2_list, nominal_pack_weight, nominal_capacity, energy_density)[source]#
Parameters:
  • var_1_name (str)

  • var_1_list (ndarray)

  • var_2_name (str)

  • var_2_list (ndarray)

  • nominal_pack_weight (float)

  • nominal_capacity (float)

  • energy_density (float)

Return type:

EnergyGridData

efficiency_pts: ndarray[tuple[Any, ...], dtype[float64]]#
endurance_pts: ndarray[tuple[Any, ...], dtype[float64]]#
endurance_t: ndarray[tuple[Any, ...], dtype[float64]]#
energy_density: float#
feasible: ndarray[tuple[Any, ...], dtype[bool]]#
net_energy_kwh: ndarray[tuple[Any, ...], dtype[float64]]#
nominal_capacity: float#
nominal_pack_weight: float#
optimal_coast_trigger: ndarray[tuple[Any, ...], dtype[float64]]#
skidpad_pts: ndarray[tuple[Any, ...], dtype[float64]]#
skidpad_t: ndarray[tuple[Any, ...], dtype[float64]]#
total_pts: ndarray[tuple[Any, ...], dtype[float64]]#
var_1_list: ndarray[tuple[Any, ...], dtype[float64]]#
var_1_name: str#
var_2_list: ndarray[tuple[Any, ...], dtype[float64]]#
var_2_name: str#
vehicle_mass: ndarray[tuple[Any, ...], dtype[float64]]#
class suboptimumg.sweep.energy_grid_models.EnergyGridProcessInput[source]#

Bases: BaseModel

Frozen input shipped to each worker process.

Fields#

Field

Type

Required

Default

bisection_max_iter

int

Yes

bisection_tol

float

Yes

capacity_buffer_kwh

float

Yes

coast_trigger_hi

float

Yes

coast_trigger_lo

float

Yes

comp_data

CompetitionData

Yes

var_1_name

str

Yes

var_1_value

float

Yes

var_2_name

str

Yes

var_2_value

float

Yes

x_idx

int

Yes

y_idx

int

Yes

Parameters:
  • comp_data (CompetitionData)

  • var_1_name (str)

  • var_1_value (float)

  • var_2_name (str)

  • var_2_value (float)

  • coast_trigger_lo (float)

  • coast_trigger_hi (float)

  • capacity_buffer_kwh (float)

  • bisection_tol (float)

  • bisection_max_iter (int)

  • x_idx (int)

  • y_idx (int)

bisection_max_iter: int#
bisection_tol: float#
capacity_buffer_kwh: float#
coast_trigger_hi: float#
coast_trigger_lo: float#
comp_data: CompetitionData#
var_1_name: str#
var_1_value: float#
var_2_name: str#
var_2_value: float#
x_idx: int#
y_idx: int#
class suboptimumg.sweep.energy_grid_models.EnergyGridProcessOutput[source]#

Bases: BaseModel

Frozen output returned from each worker process.

Fields#

Field

Type

Required

Default

accel_pts

float

No

0

accel_t

float

No

0

autoX_pts

float

No

0

autoX_t

float

No

0

bisection_iters

int

No

0

capacity_kwh

float

No

0

efficiency_pts

float

No

0

endurance_pts

float

No

0

endurance_t

float

No

0

error

str | None

No

None

feasible

bool

Yes

net_energy_kwh

float

No

0

optimal_coast_trigger

float

Yes

skidpad_pts

float

No

0

skidpad_t

float

No

0

total_points

float

Yes

vehicle_mass

float

No

0

warnings

str

No

''

x_idx

int

Yes

y_idx

int

Yes

Parameters:
  • x_idx (int)

  • y_idx (int)

  • optimal_coast_trigger (float)

  • feasible (bool)

  • total_points (float)

  • accel_pts (float)

  • skidpad_pts (float)

  • autoX_pts (float)

  • endurance_pts (float)

  • efficiency_pts (float)

  • accel_t (float)

  • skidpad_t (float)

  • autoX_t (float)

  • endurance_t (float)

  • net_energy_kwh (float)

  • capacity_kwh (float)

  • vehicle_mass (float)

  • bisection_iters (int)

  • warnings (str)

  • error (str | None)

accel_pts: float#
accel_t: float#
autoX_pts: float#
autoX_t: float#
bisection_iters: int#
capacity_kwh: float#
efficiency_pts: float#
endurance_pts: float#
endurance_t: float#
error: str | None#
feasible: bool#
net_energy_kwh: float#
optimal_coast_trigger: float#
skidpad_pts: float#
skidpad_t: float#
total_points: float#
vehicle_mass: float#
warnings: str#
x_idx: int#
y_idx: int#