+/* Copyright (c) 2023. The SimGrid Team. All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
#include <simgrid/Exception.hpp>
#include <simgrid/plugins/battery.hpp>
#include <simgrid/s4u/Actor.hpp>
bool is_active() const;
double get_power();
double get_state_of_charge();
- double get_state_of_charge_min();
- double get_state_of_charge_max();
+ double get_state_of_charge_min() const;
+ double get_state_of_charge_max() const;
double get_state_of_health();
double get_capacity();
double get_cumulative_cost();
if (power_w_ > 0) {
soc_shutdown = capacity_wh_ * 3600 * (state_of_charge_ - state_of_charge_min_) / (power_w_ * charge_efficiency_);
soh_shutdown = (energy_budget_j_ - energy_exchanged_j_) / (power_w_ * charge_efficiency_);
- } else if (power_w_ < 0) {
+ } else { // power_w_ < 0
soc_shutdown =
capacity_wh_ * 3600 * (state_of_charge_max_ - state_of_charge_) / (abs(power_w_) / discharge_efficiency_);
soh_shutdown = (energy_budget_j_ - energy_exchanged_j_) / (abs(power_w_) / discharge_efficiency_);
return state_of_charge_;
}
-double Battery::get_state_of_charge_min()
+double Battery::get_state_of_charge_min() const
{
return state_of_charge_min_;
}
-double Battery::get_state_of_charge_max()
+double Battery::get_state_of_charge_max() const
{
return state_of_charge_max_;
}
simgrid::kernel::actor::simcall_answered([this] {
double now = simgrid::s4u::Engine::get_clock();
double time_delta_real = now - last_updated_;
- if (time_delta_real <= 0 or not is_active())
+ if (time_delta_real <= 0 || not is_active())
return;
double time_delta_until_event = next_event_ - last_updated_;
bool event = next_event_ != -1 and time_delta_until_event <= time_delta_real;