Skip to content
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
33 changes: 13 additions & 20 deletions fastsim-core/src/simdrive/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,11 @@ impl SimDrive {
err
))
})?;
let soc_final = self
.veh
.res()
.with_context(|| format_dbg!())?
.state
.soc
.clone();
// final SOC, to use as starting SOC for next iteration (if needed)
let soc_final = self.veh.res().with_context(|| format_dbg!())?.state.soc;
// current iteration number, to use as counter for next iteration (if needed)
let soc_bal_iters =
self.veh.hev().with_context(|| format_dbg!())?.soc_bal_iters;
let res_per_fuel = *self
.veh
.res()
Expand Down Expand Up @@ -189,19 +187,9 @@ impl SimDrive {
.soc_balance_iter_err
{
bail!(
"{}",
format_dbg!((
self.veh
.hev()
.with_context(|| format_dbg!())?
.soc_bal_iters
.clone(),
self.veh
.hev()
.with_context(|| format_dbg!())?
.sim_params
.soc_balance_iter_err
))
"{}\nSOC balancing surpassed sim_params.soc_balance_iter_err = {} iterations",
format_dbg!(),
self.veh.hev().with_context(|| format_dbg!())?.sim_params.soc_balance_iter_err,
);
}
if res_per_fuel.abs()
Expand Down Expand Up @@ -232,6 +220,11 @@ impl SimDrive {
self.veh = veh_init.clone();
// start SOC at previous final value
self.veh.res_mut().with_context(|| format_dbg!())?.state.soc = soc_final;
// keep soc_bal_iters value from previous iteration
self.veh
.hev_mut()
.with_context(|| format_dbg!())?
.soc_bal_iters = soc_bal_iters;
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions fastsim-core/src/utils/tracked_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ where
}

/// Enum for tracking mutation
#[derive(Clone, Default, Debug, PartialEq, IsVariant, derive_more::From, TryInto)]
#[derive(Clone, Copy, Default, Debug, PartialEq, IsVariant, derive_more::From, TryInto)]
pub enum StateStatus {
/// Updated in this time step
#[default]
Expand All @@ -44,7 +44,7 @@ pub enum StateStatus {
Stale,
}

#[derive(Default, PartialEq, Clone, Debug)]
#[derive(Default, PartialEq, Clone, Copy, Debug)]
/// Struct for storing state variable and ensuring one mutation per
/// initialization or reset -- i.e. one mutation per time step
pub struct TrackedState<T>(
Expand Down
Loading
Loading