NuclearTES Scripts

Here is a list of relevant scripts for Model 1a (LFR + TES). A lot of these scripts were used to generate data for the Energies paper (link here).

In neup-ies/simulations/scripts/output_scripts you can find a multitude of scripts to both generate data and convert existing data into figures.

Within that folder, there are some subfolders:

  • ANS2021Winter: scripts used to generate data for the ANS 2021 Winter Meeting back in November 2021

  • Model1Sweeps: data generation scripts, data automatically saved to the simulation/outputs directory

  • Model1Figures: scripts to take data from simulation/outputs and generate figures

Generating Data Used in Paper

Within Model1Sweeps

  1. generate_exaggerrated_tariff_schedules.py
    • Creates a tariff schedule from SAM Tariff rate with amplified peaks and troughs.

    • Amplification factor can be specified by user

  2. paramSweep_stat_UDT_TPS__var_PC_TES_TurbCost.py
    • Supposed to be a parameter sweep where the static params are the user-defined table (UDT) and tariff price schedule (TPS)

    • Variable parameters we sweep over are the PC size, TES size

    • This uses Cory’s empirical formula for overdesign turbine cost

    • User specifies:
      • JSON script

      • tshours (as array)

      • P_ref (as array)

    • Related scripts for stacking results from multiple runs together:
      1. stitch_results__P_ref_multiruns.py
        • stacks results from multiple runs with different P_ref ranges

      2. stitch_results__tshours_multiruns.py
        • stacks results from multiple runs with different tshours ranges

      • Used these scripts because for a single parameter sweep, I would split the runs over several consoles/cores as a very manual parallelization

  3. paramSweep_sensitivity_studies_TurbCost.py
    • Supposed to be a parameter sweep where the static params are the user-defined table (UDT) and tariff price schedule (TPS)

    • Variable parameters we sweep over TES costs

    • User specifies:
      • JSON script

      • tshours (discrete set)

      • P_ref (discrete set)

Within Model1Figures

  1. generate__load_profiles.py
    • Generates a full year of simulation profiles

    • User specifies:
      • JSON script

      • tshours (single value)

      • P_ref (single value)

Recreating Figures from Paper

All outputs from the previous section are saved to simulations/outputs/model1a_energies_paper Within Model1Figures

  1. plot__load_profiles.py
    • Creates the violin plots for SAM Tariff rate results

    • Splits distributions between Winter vs Summer, Weekday vs Weekend

    • Calls on a util class called NuclearTESLoadProfiles which hosts a lot of methods used to make the violin plots

  2. plot__load_profiles__caiso.py
    • Creates the violin plots for CAISO Tariff rate results

    • Splits distributions between Winter vs Summer, Weekday vs Weekend

    • Calls on a util class called NuclearTESLoadProfiles which hosts a lot of methods used to make the violin plots

  3. paramSweep__tariff_exaggerated.py
    • Creates the relative PPA heatmap plots for SAM Tariff rates of PC size vs TES size

  4. paramSweep__caiso.py
    • Creates the relative PPA heatmap plot for CAISO Tariff rates of PC size vs TES size

  5. paramSweep__plot_sensitivity_on_TESCost.py
    • Creates the 3x3 plots of TES Cost sensitivity

  6. pricing_multipliers_CAISO.py
    • Creates the pricing multipliers as time series plot