# Import libraries:
from PySAM import BatteryStateful
import json

# Initialise the model:
model = BatteryStateful.new()
with open("mwe.json", 'r') as parameter_file:
    data = json.load(parameter_file)
    for key, val in data.items():
        model.value(key, val)
model.value('dt_hr', 1 / 60)  # Run the simulation for a one-minute timestep.
model.value('input_power', -10)  # Let the power input be 10 kW.
model.setup()

# Run the model for one timestep, with an input power of 10kW:
model.execute()  # Execute the model.

# View the result:
print("Power provided to battery: \n\t10 kW")
print("Power absorbed by battery: \n\t" + str(abs(model.StatePack.P)) + " kW")
print("Energy expected to be absorbed by battery: \n\t" +
      str(abs(model.StatePack.P * 1 / 60)) + " kWh")
print("Energy actually absorbed by the battery: \n\t" +
      str(model.StatePack.SOC / 100 * model.ParamsPack.nominal_energy) + " kWh")
