From ab8cbe808c08ef64c5792be81f1576acaf87de9d Mon Sep 17 00:00:00 2001 From: Richard Plevin Date: Mon, 30 Sep 2019 15:30:02 -0700 Subject: [PATCH 1/7] Changes to get FUND working with class-based branch. --- src/MimiFUND.jl | 46 +++++++++++++++++++++++----------------------- test/runtests.jl | 10 ++++++---- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/MimiFUND.jl b/src/MimiFUND.jl index bf3cb8a2..6b913809 100644 --- a/src/MimiFUND.jl +++ b/src/MimiFUND.jl @@ -74,7 +74,7 @@ function get_model(; nsteps = default_nsteps, datadir = default_datadir, params # --------------------------------------------- add_comp!(m, scenariouncertainty) - add_comp!(m, population) + add_comp!(m, population, :pop_component) # can't have external params and components with the same name add_comp!(m, geography) add_comp!(m, socioeconomic) add_comp!(m, emissions) @@ -109,15 +109,15 @@ function get_model(; nsteps = default_nsteps, datadir = default_datadir, params connect_param!(m, :geography, :landloss, :impactsealevelrise, :landloss) - connect_param!(m, :population, :pgrowth, :scenariouncertainty, :pgrowth) - connect_param!(m, :population, :enter, :impactsealevelrise, :enter) - connect_param!(m, :population, :leave, :impactsealevelrise, :leave) - connect_param!(m, :population, :dead, :impactdeathmorbidity, :dead) + connect_param!(m, :pop_component, :pgrowth, :scenariouncertainty, :pgrowth) + connect_param!(m, :pop_component, :enter, :impactsealevelrise, :enter) + connect_param!(m, :pop_component, :leave, :impactsealevelrise, :leave) + connect_param!(m, :pop_component, :dead, :impactdeathmorbidity, :dead) connect_param!(m, :socioeconomic, :area, :geography, :area) - connect_param!(m, :socioeconomic, :globalpopulation, :population, :globalpopulation) - connect_param!(m, :socioeconomic, :populationin1, :population, :populationin1) - connect_param!(m, :socioeconomic, :population, :population, :population) + connect_param!(m, :socioeconomic, :globalpopulation, :pop_component, :globalpopulation) + connect_param!(m, :socioeconomic, :populationin1, :pop_component, :populationin1) + connect_param!(m, :socioeconomic, :population, :pop_component, :population) connect_param!(m, :socioeconomic, :pgrowth, :scenariouncertainty, :pgrowth) connect_param!(m, :socioeconomic, :ypcgrowth, :scenariouncertainty, :ypcgrowth) connect_param!(m, :socioeconomic, :eloss, :impactaggregation, :eloss) @@ -125,7 +125,7 @@ function get_model(; nsteps = default_nsteps, datadir = default_datadir, params connect_param!(m, :socioeconomic, :mitigationcost, :emissions, :mitigationcost) connect_param!(m, :emissions, :income, :socioeconomic, :income) - connect_param!(m, :emissions, :population, :population, :population) + connect_param!(m, :emissions, :population, :pop_component, :population) connect_param!(m, :emissions, :forestemm, :scenariouncertainty, :forestemm) connect_param!(m, :emissions, :aeei, :scenariouncertainty, :aeei) connect_param!(m, :emissions, :acei, :scenariouncertainty, :acei) @@ -154,7 +154,7 @@ function get_model(; nsteps = default_nsteps, datadir = default_datadir, params connect_param!(m, :ocean, :temp, :climatedynamics, :temp) - connect_param!(m, :impactagriculture, :population, :population, :population) + connect_param!(m, :impactagriculture, :population, :pop_component, :population) connect_param!(m, :impactagriculture, :income, :socioeconomic, :income) connect_param!(m, :impactagriculture, :temp, :climateregional, :temp) connect_param!(m, :impactagriculture, :acco2, :climateco2cycle, :acco2) @@ -162,50 +162,50 @@ function get_model(; nsteps = default_nsteps, datadir = default_datadir, params connect_param!(m, :impactbiodiversity, :temp, :climateregional, :temp) connect_param!(m, :impactbiodiversity, :nospecies, :biodiversity, :nospecies) connect_param!(m, :impactbiodiversity, :income, :socioeconomic, :income) - connect_param!(m, :impactbiodiversity, :population, :population, :population) + connect_param!(m, :impactbiodiversity, :population, :pop_component, :population) - connect_param!(m, :impactcardiovascularrespiratory, :population, :population, :population) + connect_param!(m, :impactcardiovascularrespiratory, :population, :pop_component, :population) connect_param!(m, :impactcardiovascularrespiratory, :temp, :climateregional, :temp) connect_param!(m, :impactcardiovascularrespiratory, :plus, :socioeconomic, :plus) connect_param!(m, :impactcardiovascularrespiratory, :urbpop, :socioeconomic, :urbpop) - connect_param!(m, :impactcooling, :population, :population, :population) + connect_param!(m, :impactcooling, :population, :pop_component, :population) connect_param!(m, :impactcooling, :income, :socioeconomic, :income) connect_param!(m, :impactcooling, :temp, :climateregional, :temp) connect_param!(m, :impactcooling, :cumaeei, :emissions, :cumaeei) - connect_param!(m, :impactdiarrhoea, :population, :population, :population) + connect_param!(m, :impactdiarrhoea, :population, :pop_component, :population) connect_param!(m, :impactdiarrhoea, :income, :socioeconomic, :income) connect_param!(m, :impactdiarrhoea, :regtmp, :climateregional, :regtmp) - connect_param!(m, :impactextratropicalstorms, :population, :population, :population) + connect_param!(m, :impactextratropicalstorms, :population, :pop_component, :population) connect_param!(m, :impactextratropicalstorms, :income, :socioeconomic, :income) connect_param!(m, :impactextratropicalstorms, :acco2, :climateco2cycle, :acco2) - connect_param!(m, :impactforests, :population, :population, :population) + connect_param!(m, :impactforests, :population, :pop_component, :population) connect_param!(m, :impactforests, :income, :socioeconomic, :income) connect_param!(m, :impactforests, :temp, :climateregional, :temp) connect_param!(m, :impactforests, :acco2, :climateco2cycle, :acco2) - connect_param!(m, :impactheating, :population, :population, :population) + connect_param!(m, :impactheating, :population, :pop_component, :population) connect_param!(m, :impactheating, :income, :socioeconomic, :income) connect_param!(m, :impactheating, :temp, :climateregional, :temp) connect_param!(m, :impactheating, :cumaeei, :emissions, :cumaeei) - connect_param!(m, :impactvectorbornediseases, :population, :population, :population) + connect_param!(m, :impactvectorbornediseases, :population, :pop_component, :population) connect_param!(m, :impactvectorbornediseases, :income, :socioeconomic, :income) connect_param!(m, :impactvectorbornediseases, :temp, :climateregional, :temp) - connect_param!(m, :impacttropicalstorms, :population, :population, :population) + connect_param!(m, :impacttropicalstorms, :population, :pop_component, :population) connect_param!(m, :impacttropicalstorms, :income, :socioeconomic, :income) connect_param!(m, :impacttropicalstorms, :regstmp, :climateregional, :regstmp) - connect_param!(m, :vslvmorb, :population, :population, :population) + connect_param!(m, :vslvmorb, :population, :pop_component, :population) connect_param!(m, :vslvmorb, :income, :socioeconomic, :income) connect_param!(m, :impactdeathmorbidity, :vsl, :vslvmorb, :vsl) connect_param!(m, :impactdeathmorbidity, :vmorb, :vslvmorb, :vmorb) - connect_param!(m, :impactdeathmorbidity, :population, :population, :population) + connect_param!(m, :impactdeathmorbidity, :population, :pop_component, :population) connect_param!(m, :impactdeathmorbidity, :dengue, :impactvectorbornediseases, :dengue) connect_param!(m, :impactdeathmorbidity, :schisto, :impactvectorbornediseases, :schisto) connect_param!(m, :impactdeathmorbidity, :malaria, :impactvectorbornediseases, :malaria) @@ -217,11 +217,11 @@ function get_model(; nsteps = default_nsteps, datadir = default_datadir, params connect_param!(m, :impactdeathmorbidity, :extratropicalstormsdead, :impactextratropicalstorms, :extratropicalstormsdead) connect_param!(m, :impactdeathmorbidity, :diasick, :impactdiarrhoea, :diasick) - connect_param!(m, :impactwaterresources, :population, :population, :population) + connect_param!(m, :impactwaterresources, :population, :pop_component, :population) connect_param!(m, :impactwaterresources, :income, :socioeconomic, :income) connect_param!(m, :impactwaterresources, :temp, :climateregional, :temp) - connect_param!(m, :impactsealevelrise, :population, :population, :population) + connect_param!(m, :impactsealevelrise, :population, :pop_component, :population) connect_param!(m, :impactsealevelrise, :income, :socioeconomic, :income) connect_param!(m, :impactsealevelrise, :sea, :ocean, :sea) connect_param!(m, :impactsealevelrise, :area, :geography, :area) diff --git a/test/runtests.jl b/test/runtests.jl index 5d4cfe9b..9cc07b60 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -42,11 +42,13 @@ missingvalue = -999.999 err_number = 1.0e-9 err_array = 0.0 -for c in map(name, Mimi.compdefs(m)), v in Mimi.variable_names(m, c) +# for c in map(name, Mimi.compdefs(m)), v in Mimi.variable_names(m, c) +for c in Mimi.compdefs(m), v in Mimi.variable_names(m, name(c)) - #load data for comparison - filename = joinpath(@__DIR__, "../contrib/validation_data_v040/$c-$v.csv") - results = m[c, v] + # load data for comparison + orig_name = c.comp_id.comp_name + filename = joinpath(@__DIR__, "../contrib/validation_data_v040/$orig_name-$v.csv") + results = m[name(c), v] df = load(filename) |> DataFrame if typeof(results) <: Number From 4ffbd90d98a3bfedc5a86e20e2decfae101eda26 Mon Sep 17 00:00:00 2001 From: Cora Kingdon Date: Tue, 1 Oct 2019 10:21:34 -0400 Subject: [PATCH 2/7] Remove use of `first` keyword in `add_marginal_emissions!` --- src/new_marginaldamages.jl | 44 ++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/src/new_marginaldamages.jl b/src/new_marginaldamages.jl index 37850a64..d16d4da1 100644 --- a/src/new_marginaldamages.jl +++ b/src/new_marginaldamages.jl @@ -266,35 +266,47 @@ function get_marginal_model(m::Model = get_model(); gas::Symbol = :CO2, year::Un return mm end +# A component for an emissions pulse to be used in social cost calculations. Computes the `output` vector by adding +# `add` to `input`. This is similar to the Mimi.adder component, except that it allows missing values to be passed through. +@defcomp emissionspulse begin + add = Parameter(index=[time]) + input = Parameter(index=[time]) + output = Variable(index=[time]) + + function run_timestep(p, v, d, t) + v.output[t] = Mimi.@allow_missing(p.input[t]) + p.add[t] + end +end + """ -Adds a marginalemission component to `m`, and sets the additional emissions if a year is specified. +Adds an emissionspulse component to `m`, and sets the additional emissions if a year is specified. The size of the marginal emission pulse can be modified with the `pulse_size` keyword argument, in metric tonnes. """ function add_marginal_emissions!(m, year::Union{Int, Nothing} = nothing; gas::Symbol = :CO2, pulse_size::Float64 = 1e7) # Add additional emissions to m - add_comp!(m, Mimi.adder, :marginalemission, before = :climateco2cycle, first = 1951) + add_comp!(m, emissionspulse, before = :climateco2cycle) nyears = length(Mimi.time_labels(m)) - addem = zeros(nyears - 1) # starts one year later, in 1951 + addem = zeros(nyears) if year != nothing # pulse is spread over ten years, and emissions components is in Mt so divide by 1e7, and convert from CO2 to C if gas==:CO2 because emissions component is in MtC - addem[getindexfromyear(year)-1:getindexfromyear(year) + 8] .= pulse_size / 1e7 * (gas == :CO2 ? 12/44 : 1) + addem[getindexfromyear(year):getindexfromyear(year) + 9] .= pulse_size / 1e7 * (gas == :CO2 ? 12/44 : 1) end - set_param!(m, :marginalemission, :add, addem) + set_param!(m, :emissionspulse, :add, addem) # Reconnect the appropriate emissions in m if gas == :CO2 - connect_param!(m, :marginalemission, :input, :emissions, :mco2) - connect_param!(m, :climateco2cycle, :mco2, :marginalemission, :output, repeat([missing], nyears)) + connect_param!(m, :emissionspulse, :input, :emissions, :mco2) + connect_param!(m, :climateco2cycle, :mco2, :emissionspulse, :output) elseif gas == :CH4 - connect_param!(m, :marginalemission, :input, :emissions, :globch4) - connect_param!(m, :climatech4cycle, :globch4, :marginalemission, :output, repeat([missing], nyears)) + connect_param!(m, :emissionspulse, :input, :emissions, :globch4) + connect_param!(m, :climatech4cycle, :globch4, :emissionspulse, :output) elseif gas == :N2O - connect_param!(m, :marginalemission, :input, :emissions, :globn2o) - connect_param!(m, :climaten2ocycle, :globn2o, :marginalemission, :output, repeat([missing], nyears)) + connect_param!(m, :emissionspulse, :input, :emissions, :globn2o) + connect_param!(m, :climaten2ocycle, :globn2o, :emissionspulse, :output) elseif gas == :SF6 - connect_param!(m, :marginalemission, :input, :emissions, :globsf6) - connect_param!(m, :climatesf6cycle, :globsf6, :marginalemission, :output, repeat([missing], nyears)) + connect_param!(m, :emissionspulse, :input, :emissions, :globsf6) + connect_param!(m, :climatesf6cycle, :globsf6, :emissionspulse, :output) else error("Unknown gas: $gas") end @@ -304,14 +316,14 @@ end """ Helper function to set the marginal emissions in the specified year. """ -function perturb_marginal_emissions!(m::Model, year; comp_name::Symbol = :marginalemission, pulse_size::Float64 = 1e7, gas::Symbol = :CO2) +function perturb_marginal_emissions!(m::Model, year; comp_name::Symbol = :emissionspulse, pulse_size::Float64 = 1e7, gas::Symbol = :CO2) ci = compinstance(m, comp_name) emissions = Mimi.get_param_value(ci, :add) nyears = length(Mimi.dimension(m, :time)) - new_em = zeros(nyears - 1) - new_em[getindexfromyear(year)-1:getindexfromyear(year) + 8] .= pulse_size / 1e7 * (gas == :CO2 ? 12/44 : 1) + new_em = zeros(nyears) + new_em[getindexfromyear(year):getindexfromyear(year) + 9] .= pulse_size / 1e7 * (gas == :CO2 ? 12/44 : 1) emissions[:] = new_em end From 67d6069fbe11c53b28dd0b451668b1fb4e316b42 Mon Sep 17 00:00:00 2001 From: Cora Kingdon Date: Thu, 3 Oct 2019 12:16:58 -0400 Subject: [PATCH 3/7] Add SC validation tests --- Project.toml | 2 +- .../deterministic_sc_values.csv | 769 ++++++++++++++++++ test/SC validation data/mcs_sc_values.csv | 26 + test/runtests.jl | 6 + test/scc_validation.jl | 52 ++ 5 files changed, 854 insertions(+), 1 deletion(-) create mode 100644 test/SC validation data/deterministic_sc_values.csv create mode 100644 test/SC validation data/mcs_sc_values.csv create mode 100644 test/scc_validation.jl diff --git a/Project.toml b/Project.toml index 94c5c8b4..690504dd 100644 --- a/Project.toml +++ b/Project.toml @@ -22,4 +22,4 @@ Mimi = "0.9.4" Distributions = "0.20, 0.21" [targets] -test = ["Test", "DataFrames", "CSVFiles"] +test = ["Test", "DataFrames", "CSVFiles", "Query"] diff --git a/test/SC validation data/deterministic_sc_values.csv b/test/SC validation data/deterministic_sc_values.csv new file mode 100644 index 00000000..0bacd8b4 --- /dev/null +++ b/test/SC validation data/deterministic_sc_values.csv @@ -0,0 +1,769 @@ +"gas","year","eta","prtp","equity_weights","equity_weights_normalization_region","last_year","pulse_size","SC" +CO2,2020,0.0,0.015,true,0,2300,1.0,31.977840696304646 +CO2,2020,0.0,0.015,true,0,2300,1.0e7,31.87279824566322 +CO2,2020,0.0,0.015,true,0,3000,1.0,32.73894200838336 +CO2,2020,0.0,0.015,true,0,3000,1.0e7,32.64516671130856 +CO2,2020,0.0,0.015,true,1,2300,1.0,31.977840696304646 +CO2,2020,0.0,0.015,true,1,2300,1.0e7,31.87279824566322 +CO2,2020,0.0,0.015,true,1,3000,1.0,32.73894200838336 +CO2,2020,0.0,0.015,true,1,3000,1.0e7,32.64516671130856 +CO2,2020,0.0,0.015,true,10,2300,1.0,31.977840696304646 +CO2,2020,0.0,0.015,true,10,2300,1.0e7,31.87279824566322 +CO2,2020,0.0,0.015,true,10,3000,1.0,32.73894200838336 +CO2,2020,0.0,0.015,true,10,3000,1.0e7,32.64516671130856 +CO2,2020,0.0,0.015,false,0,2300,1.0,31.977840696304632 +CO2,2020,0.0,0.015,false,0,2300,1.0e7,31.872798245663212 +CO2,2020,0.0,0.015,false,0,3000,1.0,32.73894200838335 +CO2,2020,0.0,0.015,false,0,3000,1.0e7,32.64516671130855 +CO2,2020,0.0,0.015,false,1,2300,1.0,31.977840696304632 +CO2,2020,0.0,0.015,false,1,2300,1.0e7,31.872798245663212 +CO2,2020,0.0,0.015,false,1,3000,1.0,32.73894200838335 +CO2,2020,0.0,0.015,false,1,3000,1.0e7,32.64516671130855 +CO2,2020,0.0,0.015,false,10,2300,1.0,31.977840696304632 +CO2,2020,0.0,0.015,false,10,2300,1.0e7,31.872798245663212 +CO2,2020,0.0,0.015,false,10,3000,1.0,32.73894200838335 +CO2,2020,0.0,0.015,false,10,3000,1.0e7,32.64516671130855 +CO2,2020,0.0,0.03,true,0,2300,1.0,6.54719213393669 +CO2,2020,0.0,0.03,true,0,2300,1.0e7,6.51699629099712 +CO2,2020,0.0,0.03,true,0,3000,1.0,6.553449042482377 +CO2,2020,0.0,0.03,true,0,3000,1.0e7,6.523349894143266 +CO2,2020,0.0,0.03,true,1,2300,1.0,6.54719213393669 +CO2,2020,0.0,0.03,true,1,2300,1.0e7,6.51699629099712 +CO2,2020,0.0,0.03,true,1,3000,1.0,6.553449042482377 +CO2,2020,0.0,0.03,true,1,3000,1.0e7,6.523349894143266 +CO2,2020,0.0,0.03,true,10,2300,1.0,6.54719213393669 +CO2,2020,0.0,0.03,true,10,2300,1.0e7,6.51699629099712 +CO2,2020,0.0,0.03,true,10,3000,1.0,6.553449042482377 +CO2,2020,0.0,0.03,true,10,3000,1.0e7,6.523349894143266 +CO2,2020,0.0,0.03,false,0,2300,1.0,6.547192133936688 +CO2,2020,0.0,0.03,false,0,2300,1.0e7,6.516996290997119 +CO2,2020,0.0,0.03,false,0,3000,1.0,6.553449042482376 +CO2,2020,0.0,0.03,false,0,3000,1.0e7,6.523349894143264 +CO2,2020,0.0,0.03,false,1,2300,1.0,6.547192133936688 +CO2,2020,0.0,0.03,false,1,2300,1.0e7,6.516996290997119 +CO2,2020,0.0,0.03,false,1,3000,1.0,6.553449042482376 +CO2,2020,0.0,0.03,false,1,3000,1.0e7,6.523349894143264 +CO2,2020,0.0,0.03,false,10,2300,1.0,6.547192133936688 +CO2,2020,0.0,0.03,false,10,2300,1.0e7,6.516996290997119 +CO2,2020,0.0,0.03,false,10,3000,1.0,6.553449042482376 +CO2,2020,0.0,0.03,false,10,3000,1.0e7,6.523349894143264 +CO2,2020,1.45,0.015,true,0,2300,1.0,7.194368726350691 +CO2,2020,1.45,0.015,true,0,2300,1.0e7,7.154369469573282 +CO2,2020,1.45,0.015,true,0,3000,1.0,7.206728543152689 +CO2,2020,1.45,0.015,true,0,3000,1.0e7,7.166845552320296 +CO2,2020,1.45,0.015,true,1,2300,1.0,104.77083912990587 +CO2,2020,1.45,0.015,true,1,2300,1.0e7,104.1883341379401 +CO2,2020,1.45,0.015,true,1,3000,1.0,104.95083384898311 +CO2,2020,1.45,0.015,true,1,3000,1.0e7,104.37002202581156 +CO2,2020,1.45,0.015,true,10,2300,1.0,5.976236484690133 +CO2,2020,1.45,0.015,true,10,2300,1.0e7,5.943009800486683 +CO2,2020,1.45,0.015,true,10,3000,1.0,5.986503568700666 +CO2,2020,1.45,0.015,true,10,3000,1.0e7,5.953373464587693 +CO2,2020,1.45,0.015,false,0,2300,1.0,2.0630411216859112 +CO2,2020,1.45,0.015,false,0,2300,1.0e7,2.049311145386427 +CO2,2020,1.45,0.015,false,0,3000,1.0,2.0695080826652226 +CO2,2020,1.45,0.015,false,0,3000,1.0e7,2.0559269794356267 +CO2,2020,1.45,0.015,false,1,2300,1.0,2.0630411216859112 +CO2,2020,1.45,0.015,false,1,2300,1.0e7,2.049311145386427 +CO2,2020,1.45,0.015,false,1,3000,1.0,2.0695080826652226 +CO2,2020,1.45,0.015,false,1,3000,1.0e7,2.0559269794356267 +CO2,2020,1.45,0.015,false,10,2300,1.0,2.0630411216859112 +CO2,2020,1.45,0.015,false,10,2300,1.0e7,2.049311145386427 +CO2,2020,1.45,0.015,false,10,3000,1.0,2.0695080826652226 +CO2,2020,1.45,0.015,false,10,3000,1.0e7,2.0559269794356267 +CO2,2020,1.45,0.03,true,0,2300,1.0,0.39380808462952954 +CO2,2020,1.45,0.03,true,0,2300,1.0e7,0.37782811573896985 +CO2,2020,1.45,0.03,true,0,3000,1.0,0.39393534717931844 +CO2,2020,1.45,0.03,true,0,3000,1.0e7,0.3779563443531393 +CO2,2020,1.45,0.03,true,1,2300,1.0,5.734985938607221 +CO2,2020,1.45,0.03,true,1,2300,1.0e7,5.502271323383031 +CO2,2020,1.45,0.03,true,1,3000,1.0,5.736839249806334 +CO2,2020,1.45,0.03,true,1,3000,1.0e7,5.504138703276682 +CO2,2020,1.45,0.03,true,10,2300,1.0,0.3271294998696469 +CO2,2020,1.45,0.03,true,10,2300,1.0e7,0.31385521872831734 +CO2,2020,1.45,0.03,true,10,3000,1.0,0.3272352146477057 +CO2,2020,1.45,0.03,true,10,3000,1.0e7,0.3139617359991905 +CO2,2020,1.45,0.03,false,0,2300,1.0,0.1734755156037207 +CO2,2020,1.45,0.03,false,0,2300,1.0e7,0.16942515468199093 +CO2,2020,1.45,0.03,false,0,3000,1.0,0.1735435995632511 +CO2,2020,1.45,0.03,false,0,3000,1.0e7,0.16949454498980093 +CO2,2020,1.45,0.03,false,1,2300,1.0,0.1734755156037207 +CO2,2020,1.45,0.03,false,1,2300,1.0e7,0.16942515468199093 +CO2,2020,1.45,0.03,false,1,3000,1.0,0.1735435995632511 +CO2,2020,1.45,0.03,false,1,3000,1.0e7,0.16949454498980093 +CO2,2020,1.45,0.03,false,10,2300,1.0,0.1734755156037207 +CO2,2020,1.45,0.03,false,10,2300,1.0e7,0.16942515468199093 +CO2,2020,1.45,0.03,false,10,3000,1.0,0.1735435995632511 +CO2,2020,1.45,0.03,false,10,3000,1.0e7,0.16949454498980093 +CO2,2055,0.0,0.015,true,0,2300,1.0,41.196076093182945 +CO2,2055,0.0,0.015,true,0,2300,1.0e7,40.730869908716485 +CO2,2055,0.0,0.015,true,0,3000,1.0,42.99760388854387 +CO2,2055,0.0,0.015,true,0,3000,1.0e7,42.53767342757462 +CO2,2055,0.0,0.015,true,1,2300,1.0,41.196076093182945 +CO2,2055,0.0,0.015,true,1,2300,1.0e7,40.730869908716485 +CO2,2055,0.0,0.015,true,1,3000,1.0,42.99760388854387 +CO2,2055,0.0,0.015,true,1,3000,1.0e7,42.53767342757462 +CO2,2055,0.0,0.015,true,10,2300,1.0,41.196076093182945 +CO2,2055,0.0,0.015,true,10,2300,1.0e7,40.730869908716485 +CO2,2055,0.0,0.015,true,10,3000,1.0,42.99760388854387 +CO2,2055,0.0,0.015,true,10,3000,1.0e7,42.53767342757462 +CO2,2055,0.0,0.015,false,0,2300,1.0,41.196076093182924 +CO2,2055,0.0,0.015,false,0,2300,1.0e7,40.73086990871647 +CO2,2055,0.0,0.015,false,0,3000,1.0,42.99760388854385 +CO2,2055,0.0,0.015,false,0,3000,1.0e7,42.537673427574596 +CO2,2055,0.0,0.015,false,1,2300,1.0,41.196076093182924 +CO2,2055,0.0,0.015,false,1,2300,1.0e7,40.73086990871647 +CO2,2055,0.0,0.015,false,1,3000,1.0,42.99760388854385 +CO2,2055,0.0,0.015,false,1,3000,1.0e7,42.537673427574596 +CO2,2055,0.0,0.015,false,10,2300,1.0,41.196076093182924 +CO2,2055,0.0,0.015,false,10,2300,1.0e7,40.73086990871647 +CO2,2055,0.0,0.015,false,10,3000,1.0,42.99760388854385 +CO2,2055,0.0,0.015,false,10,3000,1.0e7,42.537673427574596 +CO2,2055,0.0,0.03,true,0,2300,1.0,11.611279177401853 +CO2,2055,0.0,0.03,true,0,2300,1.0e7,11.50275112367057 +CO2,2055,0.0,0.03,true,0,3000,1.0,11.63546189196602 +CO2,2055,0.0,0.03,true,0,3000,1.0e7,11.527005485918696 +CO2,2055,0.0,0.03,true,1,2300,1.0,11.611279177401853 +CO2,2055,0.0,0.03,true,1,2300,1.0e7,11.50275112367057 +CO2,2055,0.0,0.03,true,1,3000,1.0,11.63546189196602 +CO2,2055,0.0,0.03,true,1,3000,1.0e7,11.527005485918696 +CO2,2055,0.0,0.03,true,10,2300,1.0,11.611279177401853 +CO2,2055,0.0,0.03,true,10,2300,1.0e7,11.50275112367057 +CO2,2055,0.0,0.03,true,10,3000,1.0,11.63546189196602 +CO2,2055,0.0,0.03,true,10,3000,1.0e7,11.527005485918696 +CO2,2055,0.0,0.03,false,0,2300,1.0,11.611279177401851 +CO2,2055,0.0,0.03,false,0,2300,1.0e7,11.50275112367057 +CO2,2055,0.0,0.03,false,0,3000,1.0,11.63546189196602 +CO2,2055,0.0,0.03,false,0,3000,1.0e7,11.527005485918696 +CO2,2055,0.0,0.03,false,1,2300,1.0,11.611279177401851 +CO2,2055,0.0,0.03,false,1,2300,1.0e7,11.50275112367057 +CO2,2055,0.0,0.03,false,1,3000,1.0,11.63546189196602 +CO2,2055,0.0,0.03,false,1,3000,1.0e7,11.527005485918696 +CO2,2055,0.0,0.03,false,10,2300,1.0,11.611279177401851 +CO2,2055,0.0,0.03,false,10,2300,1.0e7,11.50275112367057 +CO2,2055,0.0,0.03,false,10,3000,1.0,11.63546189196602 +CO2,2055,0.0,0.03,false,10,3000,1.0e7,11.527005485918696 +CO2,2055,1.45,0.015,true,0,2300,1.0,15.720644793744341 +CO2,2055,1.45,0.015,true,0,2300,1.0e7,15.589704817322323 +CO2,2055,1.45,0.015,true,0,3000,1.0,15.786362803805691 +CO2,2055,1.45,0.015,true,0,3000,1.0e7,15.655252525274808 +CO2,2055,1.45,0.015,true,1,2300,1.0,229.0291629367368 +CO2,2055,1.45,0.015,true,1,2300,1.0e7,227.1215393253424 +CO2,2055,1.45,0.015,true,1,3000,1.0,229.98658809529059 +CO2,2055,1.45,0.015,true,1,3000,1.0e7,228.07648340567386 +CO2,2055,1.45,0.015,true,10,2300,1.0,21.67870099746363 +CO2,2055,1.45,0.015,true,10,2300,1.0e7,21.498135337803323 +CO2,2055,1.45,0.015,true,10,3000,1.0,21.769325848349848 +CO2,2055,1.45,0.015,true,10,3000,1.0e7,21.588525342819935 +CO2,2055,1.45,0.015,false,0,2300,1.0,6.39475084834303 +CO2,2055,1.45,0.015,false,0,2300,1.0e7,6.3266381389574 +CO2,2055,1.45,0.015,false,0,3000,1.0,6.430158998835182 +CO2,2055,1.45,0.015,false,0,3000,1.0e7,6.3622861025371655 +CO2,2055,1.45,0.015,false,1,2300,1.0,6.39475084834303 +CO2,2055,1.45,0.015,false,1,2300,1.0e7,6.3266381389574 +CO2,2055,1.45,0.015,false,1,3000,1.0,6.430158998835182 +CO2,2055,1.45,0.015,false,1,3000,1.0e7,6.3622861025371655 +CO2,2055,1.45,0.015,false,10,2300,1.0,6.39475084834303 +CO2,2055,1.45,0.015,false,10,2300,1.0e7,6.3266381389574 +CO2,2055,1.45,0.015,false,10,3000,1.0,6.430158998835182 +CO2,2055,1.45,0.015,false,10,3000,1.0e7,6.3622861025371655 +CO2,2055,1.45,0.03,true,0,2300,1.0,5.461370218817437 +CO2,2055,1.45,0.03,true,0,2300,1.0e7,5.415460420861699 +CO2,2055,1.45,0.03,true,0,3000,1.0,5.462463948465515 +CO2,2055,1.45,0.03,true,0,3000,1.0e7,5.41655203140049 +CO2,2055,1.45,0.03,true,1,2300,1.0,79.56499660886125 +CO2,2055,1.45,0.03,true,1,2300,1.0e7,78.8961511044719 +CO2,2055,1.45,0.03,true,1,3000,1.0,79.58093081442753 +CO2,2055,1.45,0.03,true,1,3000,1.0e7,78.91205443739702 +CO2,2055,1.45,0.03,true,10,2300,1.0,7.531205848331895 +CO2,2055,1.45,0.03,true,10,2300,1.0e7,7.467896436040327 +CO2,2055,1.45,0.03,true,10,3000,1.0,7.532714096773596 +CO2,2055,1.45,0.03,true,10,3000,1.0e7,7.469401762239512 +CO2,2055,1.45,0.03,false,0,2300,1.0,2.191377126393848 +CO2,2055,1.45,0.03,false,0,2300,1.0e7,2.168622512983834 +CO2,2055,1.45,0.03,false,0,3000,1.0,2.191988715936341 +CO2,2055,1.45,0.03,false,0,3000,1.0e7,2.1692372606617645 +CO2,2055,1.45,0.03,false,1,2300,1.0,2.191377126393848 +CO2,2055,1.45,0.03,false,1,2300,1.0e7,2.168622512983834 +CO2,2055,1.45,0.03,false,1,3000,1.0,2.191988715936341 +CO2,2055,1.45,0.03,false,1,3000,1.0e7,2.1692372606617645 +CO2,2055,1.45,0.03,false,10,2300,1.0,2.191377126393848 +CO2,2055,1.45,0.03,false,10,2300,1.0e7,2.168622512983834 +CO2,2055,1.45,0.03,false,10,3000,1.0,2.191988715936341 +CO2,2055,1.45,0.03,false,10,3000,1.0e7,2.1692372606617645 +CH4,2020,0.0,0.015,true,0,2300,1.0,928.9970675283876 +CH4,2020,0.0,0.015,true,0,2300,1.0e7,928.8100389416436 +CH4,2020,0.0,0.015,true,0,3000,1.0,902.3455215517665 +CH4,2020,0.0,0.015,true,0,3000,1.0e7,902.156829874164 +CH4,2020,0.0,0.015,true,1,2300,1.0,928.9970675283876 +CH4,2020,0.0,0.015,true,1,2300,1.0e7,928.8100389416436 +CH4,2020,0.0,0.015,true,1,3000,1.0,902.3455215517665 +CH4,2020,0.0,0.015,true,1,3000,1.0e7,902.156829874164 +CH4,2020,0.0,0.015,true,10,2300,1.0,928.9970675283876 +CH4,2020,0.0,0.015,true,10,2300,1.0e7,928.8100389416436 +CH4,2020,0.0,0.015,true,10,3000,1.0,902.3455215517665 +CH4,2020,0.0,0.015,true,10,3000,1.0e7,902.156829874164 +CH4,2020,0.0,0.015,false,0,2300,1.0,928.9970675283871 +CH4,2020,0.0,0.015,false,0,2300,1.0e7,928.8100389416431 +CH4,2020,0.0,0.015,false,0,3000,1.0,902.3455215517661 +CH4,2020,0.0,0.015,false,0,3000,1.0e7,902.1568298741636 +CH4,2020,0.0,0.015,false,1,2300,1.0,928.9970675283871 +CH4,2020,0.0,0.015,false,1,2300,1.0e7,928.8100389416431 +CH4,2020,0.0,0.015,false,1,3000,1.0,902.3455215517661 +CH4,2020,0.0,0.015,false,1,3000,1.0e7,902.1568298741636 +CH4,2020,0.0,0.015,false,10,2300,1.0,928.9970675283871 +CH4,2020,0.0,0.015,false,10,2300,1.0e7,928.8100389416431 +CH4,2020,0.0,0.015,false,10,3000,1.0,902.3455215517661 +CH4,2020,0.0,0.015,false,10,3000,1.0e7,902.1568298741636 +CH4,2020,0.0,0.03,true,0,2300,1.0,405.63907012536856 +CH4,2020,0.0,0.03,true,0,2300,1.0e7,405.58069215459113 +CH4,2020,0.0,0.03,true,0,3000,1.0,405.4461207709425 +CH4,2020,0.0,0.03,true,0,3000,1.0e7,405.3877760317315 +CH4,2020,0.0,0.03,true,1,2300,1.0,405.63907012536856 +CH4,2020,0.0,0.03,true,1,2300,1.0e7,405.58069215459113 +CH4,2020,0.0,0.03,true,1,3000,1.0,405.4461207709425 +CH4,2020,0.0,0.03,true,1,3000,1.0e7,405.3877760317315 +CH4,2020,0.0,0.03,true,10,2300,1.0,405.63907012536856 +CH4,2020,0.0,0.03,true,10,2300,1.0e7,405.58069215459113 +CH4,2020,0.0,0.03,true,10,3000,1.0,405.4461207709425 +CH4,2020,0.0,0.03,true,10,3000,1.0e7,405.3877760317315 +CH4,2020,0.0,0.03,false,0,2300,1.0,405.63907012536856 +CH4,2020,0.0,0.03,false,0,2300,1.0e7,405.58069215459113 +CH4,2020,0.0,0.03,false,0,3000,1.0,405.4461207709425 +CH4,2020,0.0,0.03,false,0,3000,1.0e7,405.38777603173156 +CH4,2020,0.0,0.03,false,1,2300,1.0,405.63907012536856 +CH4,2020,0.0,0.03,false,1,2300,1.0e7,405.58069215459113 +CH4,2020,0.0,0.03,false,1,3000,1.0,405.4461207709425 +CH4,2020,0.0,0.03,false,1,3000,1.0e7,405.38777603173156 +CH4,2020,0.0,0.03,false,10,2300,1.0,405.63907012536856 +CH4,2020,0.0,0.03,false,10,2300,1.0e7,405.58069215459113 +CH4,2020,0.0,0.03,false,10,3000,1.0,405.4461207709425 +CH4,2020,0.0,0.03,false,10,3000,1.0e7,405.38777603173156 +CH4,2020,1.45,0.015,true,0,2300,1.0,897.5351177811922 +CH4,2020,1.45,0.015,true,0,2300,1.0e7,897.4251094439841 +CH4,2020,1.45,0.015,true,0,3000,1.0,896.9525569018825 +CH4,2020,1.45,0.015,true,0,3000,1.0e7,896.842266033614 +CH4,2020,1.45,0.015,true,1,2300,1.0,13070.710025477589 +CH4,2020,1.45,0.015,true,1,2300,1.0e7,13069.107985571245 +CH4,2020,1.45,0.015,true,1,3000,1.0,13062.22625233625 +CH4,2020,1.45,0.015,true,1,3000,1.0e7,13060.620097959627 +CH4,2020,1.45,0.015,true,10,2300,1.0,745.5667510518913 +CH4,2020,1.45,0.015,true,10,2300,1.0e7,745.4753690469579 +CH4,2020,1.45,0.015,true,10,3000,1.0,745.0828279011731 +CH4,2020,1.45,0.015,true,10,3000,1.0e7,744.991211202621 +CH4,2020,1.45,0.015,false,0,2300,1.0,221.9299306717154 +CH4,2020,1.45,0.015,false,0,2300,1.0e7,221.90016623330132 +CH4,2020,1.45,0.015,false,0,3000,1.0,221.75386189944413 +CH4,2020,1.45,0.015,false,0,3000,1.0e7,221.72432886187232 +CH4,2020,1.45,0.015,false,1,2300,1.0,221.9299306717154 +CH4,2020,1.45,0.015,false,1,2300,1.0e7,221.90016623330132 +CH4,2020,1.45,0.015,false,1,3000,1.0,221.75386189944413 +CH4,2020,1.45,0.015,false,1,3000,1.0e7,221.72432886187232 +CH4,2020,1.45,0.015,false,10,2300,1.0,221.9299306717154 +CH4,2020,1.45,0.015,false,10,2300,1.0e7,221.90016623330132 +CH4,2020,1.45,0.015,false,10,3000,1.0,221.75386189944413 +CH4,2020,1.45,0.015,false,10,3000,1.0e7,221.72432886187232 +CH4,2020,1.45,0.03,true,0,2300,1.0,545.4831068962525 +CH4,2020,1.45,0.03,true,0,2300,1.0e7,545.4212468375587 +CH4,2020,1.45,0.03,true,0,3000,1.0,545.4777575543956 +CH4,2020,1.45,0.03,true,0,3000,1.0e7,545.4158957094347 +CH4,2020,1.45,0.03,true,1,2300,1.0,7943.813420541478 +CH4,2020,1.45,0.03,true,1,2300,1.0e7,7942.912558978156 +CH4,2020,1.45,0.03,true,1,3000,1.0,7943.735518635634 +CH4,2020,1.45,0.03,true,1,3000,1.0e7,7942.834631059086 +CH4,2020,1.45,0.03,true,10,2300,1.0,453.12329256567 +CH4,2020,1.45,0.03,true,10,2300,1.0e7,453.0719064950123 +CH4,2020,1.45,0.03,true,10,3000,1.0,453.1188489607912 +CH4,2020,1.45,0.03,true,10,3000,1.0e7,453.0674614063124 +CH4,2020,1.45,0.03,false,0,2300,1.0,136.5601663444064 +CH4,2020,1.45,0.03,false,0,2300,1.0e7,136.54080211636315 +CH4,2020,1.45,0.03,false,0,3000,1.0,136.55843887102515 +CH4,2020,1.45,0.03,false,0,3000,1.0e7,136.5390771640426 +CH4,2020,1.45,0.03,false,1,2300,1.0,136.5601663444064 +CH4,2020,1.45,0.03,false,1,2300,1.0e7,136.54080211636315 +CH4,2020,1.45,0.03,false,1,3000,1.0,136.55843887102515 +CH4,2020,1.45,0.03,false,1,3000,1.0e7,136.5390771640426 +CH4,2020,1.45,0.03,false,10,2300,1.0,136.5601663444064 +CH4,2020,1.45,0.03,false,10,2300,1.0e7,136.54080211636315 +CH4,2020,1.45,0.03,false,10,3000,1.0,136.55843887102515 +CH4,2020,1.45,0.03,false,10,3000,1.0e7,136.5390771640426 +CH4,2055,0.0,0.015,true,0,2300,1.0,1618.6634733033422 +CH4,2055,0.0,0.015,true,0,2300,1.0e7,1618.148313998609 +CH4,2055,0.0,0.015,true,0,3000,1.0,1581.8519882592257 +CH4,2055,0.0,0.015,true,0,3000,1.0e7,1581.3965138430917 +CH4,2055,0.0,0.015,true,1,2300,1.0,1618.6634733033422 +CH4,2055,0.0,0.015,true,1,2300,1.0e7,1618.148313998609 +CH4,2055,0.0,0.015,true,1,3000,1.0,1581.8519882592257 +CH4,2055,0.0,0.015,true,1,3000,1.0e7,1581.3965138430917 +CH4,2055,0.0,0.015,true,10,2300,1.0,1618.6634733033422 +CH4,2055,0.0,0.015,true,10,2300,1.0e7,1618.148313998609 +CH4,2055,0.0,0.015,true,10,3000,1.0,1581.8519882592257 +CH4,2055,0.0,0.015,true,10,3000,1.0e7,1581.3965138430917 +CH4,2055,0.0,0.015,false,0,2300,1.0,1618.6634733033418 +CH4,2055,0.0,0.015,false,0,2300,1.0e7,1618.1483139986085 +CH4,2055,0.0,0.015,false,0,3000,1.0,1581.851988259225 +CH4,2055,0.0,0.015,false,0,3000,1.0e7,1581.3965138430913 +CH4,2055,0.0,0.015,false,1,2300,1.0,1618.6634733033418 +CH4,2055,0.0,0.015,false,1,2300,1.0e7,1618.1483139986085 +CH4,2055,0.0,0.015,false,1,3000,1.0,1581.851988259225 +CH4,2055,0.0,0.015,false,1,3000,1.0e7,1581.3965138430913 +CH4,2055,0.0,0.015,false,10,2300,1.0,1618.6634733033418 +CH4,2055,0.0,0.015,false,10,2300,1.0e7,1618.1483139986085 +CH4,2055,0.0,0.015,false,10,3000,1.0,1581.851988259225 +CH4,2055,0.0,0.015,false,10,3000,1.0e7,1581.3965138430913 +CH4,2055,0.0,0.03,true,0,2300,1.0,832.6532929889822 +CH4,2055,0.0,0.03,true,0,2300,1.0e7,832.4545935943556 +CH4,2055,0.0,0.03,true,0,3000,1.0,832.2139667776089 +CH4,2055,0.0,0.03,true,0,3000,1.0e7,832.015773532222 +CH4,2055,0.0,0.03,true,1,2300,1.0,832.6532929889822 +CH4,2055,0.0,0.03,true,1,2300,1.0e7,832.4545935943556 +CH4,2055,0.0,0.03,true,1,3000,1.0,832.2139667776089 +CH4,2055,0.0,0.03,true,1,3000,1.0e7,832.015773532222 +CH4,2055,0.0,0.03,true,10,2300,1.0,832.6532929889822 +CH4,2055,0.0,0.03,true,10,2300,1.0e7,832.4545935943556 +CH4,2055,0.0,0.03,true,10,3000,1.0,832.2139667776089 +CH4,2055,0.0,0.03,true,10,3000,1.0e7,832.015773532222 +CH4,2055,0.0,0.03,false,0,2300,1.0,832.6532929889822 +CH4,2055,0.0,0.03,false,0,2300,1.0e7,832.4545935943559 +CH4,2055,0.0,0.03,false,0,3000,1.0,832.2139667776091 +CH4,2055,0.0,0.03,false,0,3000,1.0e7,832.015773532222 +CH4,2055,0.0,0.03,false,1,2300,1.0,832.6532929889822 +CH4,2055,0.0,0.03,false,1,2300,1.0e7,832.4545935943559 +CH4,2055,0.0,0.03,false,1,3000,1.0,832.2139667776091 +CH4,2055,0.0,0.03,false,1,3000,1.0e7,832.015773532222 +CH4,2055,0.0,0.03,false,10,2300,1.0,832.6532929889822 +CH4,2055,0.0,0.03,false,10,2300,1.0e7,832.4545935943559 +CH4,2055,0.0,0.03,false,10,3000,1.0,832.2139667776091 +CH4,2055,0.0,0.03,false,10,3000,1.0e7,832.015773532222 +CH4,2055,1.45,0.015,true,0,2300,1.0,1399.3396751474404 +CH4,2055,1.45,0.015,true,0,2300,1.0e7,1399.0627650429026 +CH4,2055,1.45,0.015,true,0,3000,1.0,1397.7276519062584 +CH4,2055,1.45,0.015,true,0,3000,1.0e7,1397.451888574455 +CH4,2055,1.45,0.015,true,1,2300,1.0,20386.542579393103 +CH4,2055,1.45,0.015,true,1,2300,1.0e7,20382.508362585642 +CH4,2055,1.45,0.015,true,1,3000,1.0,20363.057516381596 +CH4,2055,1.45,0.015,true,1,3000,1.0e7,20359.040006547868 +CH4,2055,1.45,0.015,true,10,2300,1.0,1929.6833437443156 +CH4,2055,1.45,0.015,true,10,2300,1.0e7,1929.3014859109887 +CH4,2055,1.45,0.015,true,10,3000,1.0,1927.4603706853193 +CH4,2055,1.45,0.015,true,10,3000,1.0e7,1927.0800942466199 +CH4,2055,1.45,0.015,false,0,2300,1.0,541.7651520229801 +CH4,2055,1.45,0.015,false,0,2300,1.0e7,541.6462544535757 +CH4,2055,1.45,0.015,false,0,3000,1.0,541.0834327485647 +CH4,2055,1.45,0.015,false,0,3000,1.0e7,540.9658520997117 +CH4,2055,1.45,0.015,false,1,2300,1.0,541.7651520229801 +CH4,2055,1.45,0.015,false,1,2300,1.0e7,541.6462544535757 +CH4,2055,1.45,0.015,false,1,3000,1.0,541.0834327485647 +CH4,2055,1.45,0.015,false,1,3000,1.0e7,540.9658520997117 +CH4,2055,1.45,0.015,false,10,2300,1.0,541.7651520229801 +CH4,2055,1.45,0.015,false,10,2300,1.0e7,541.6462544535757 +CH4,2055,1.45,0.015,false,10,3000,1.0,541.0834327485647 +CH4,2055,1.45,0.015,false,10,3000,1.0e7,540.9658520997117 +CH4,2055,1.45,0.03,true,0,2300,1.0,878.7524807129334 +CH4,2055,1.45,0.03,true,0,2300,1.0e7,878.6077837009436 +CH4,2055,1.45,0.03,true,0,3000,1.0,878.7279885096374 +CH4,2055,1.45,0.03,true,0,3000,1.0e7,878.5833031437935 +CH4,2055,1.45,0.03,true,1,2300,1.0,12802.270372927114 +CH4,2055,1.45,0.03,true,1,2300,1.0e7,12800.162327362175 +CH4,2055,1.45,0.03,true,1,3000,1.0,12801.913553668559 +CH4,2055,1.45,0.03,true,1,3000,1.0e7,12799.80567777268 +CH4,2055,1.45,0.03,true,10,2300,1.0,1211.7958601631717 +CH4,2055,1.45,0.03,true,10,2300,1.0e7,1211.596323611121 +CH4,2055,1.45,0.03,true,10,3000,1.0,1211.7620855210378 +CH4,2055,1.45,0.03,true,10,3000,1.0e7,1211.562565028972 +CH4,2055,1.45,0.03,false,0,2300,1.0,342.6299946708511 +CH4,2055,1.45,0.03,false,0,2300,1.0e7,342.5654236820393 +CH4,2055,1.45,0.03,false,0,3000,1.0,342.6190337626437 +CH4,2055,1.45,0.03,false,0,3000,1.0e7,342.55448262189657 +CH4,2055,1.45,0.03,false,1,2300,1.0,342.6299946708511 +CH4,2055,1.45,0.03,false,1,2300,1.0e7,342.5654236820393 +CH4,2055,1.45,0.03,false,1,3000,1.0,342.6190337626437 +CH4,2055,1.45,0.03,false,1,3000,1.0e7,342.55448262189657 +CH4,2055,1.45,0.03,false,10,2300,1.0,342.6299946708511 +CH4,2055,1.45,0.03,false,10,2300,1.0e7,342.5654236820393 +CH4,2055,1.45,0.03,false,10,3000,1.0,342.6190337626437 +CH4,2055,1.45,0.03,false,10,3000,1.0e7,342.55448262189657 +N2O,2020,0.0,0.015,true,0,2300,1.0,27807.775599713234 +N2O,2020,0.0,0.015,true,0,2300,1.0e7,27790.588024643603 +N2O,2020,0.0,0.015,true,0,3000,1.0,27670.845106240628 +N2O,2020,0.0,0.015,true,0,3000,1.0e7,27653.870362866786 +N2O,2020,0.0,0.015,true,1,2300,1.0,27807.775599713234 +N2O,2020,0.0,0.015,true,1,2300,1.0e7,27790.588024643603 +N2O,2020,0.0,0.015,true,1,3000,1.0,27670.845106240628 +N2O,2020,0.0,0.015,true,1,3000,1.0e7,27653.870362866786 +N2O,2020,0.0,0.015,true,10,2300,1.0,27807.775599713234 +N2O,2020,0.0,0.015,true,10,2300,1.0e7,27790.588024643603 +N2O,2020,0.0,0.015,true,10,3000,1.0,27670.845106240628 +N2O,2020,0.0,0.015,true,10,3000,1.0e7,27653.870362866786 +N2O,2020,0.0,0.015,false,0,2300,1.0,27807.775599713226 +N2O,2020,0.0,0.015,false,0,2300,1.0e7,27790.58802464359 +N2O,2020,0.0,0.015,false,0,3000,1.0,27670.845106240617 +N2O,2020,0.0,0.015,false,0,3000,1.0e7,27653.87036286677 +N2O,2020,0.0,0.015,false,1,2300,1.0,27807.775599713226 +N2O,2020,0.0,0.015,false,1,2300,1.0e7,27790.58802464359 +N2O,2020,0.0,0.015,false,1,3000,1.0,27670.845106240617 +N2O,2020,0.0,0.015,false,1,3000,1.0e7,27653.87036286677 +N2O,2020,0.0,0.015,false,10,2300,1.0,27807.775599713226 +N2O,2020,0.0,0.015,false,10,2300,1.0e7,27790.58802464359 +N2O,2020,0.0,0.015,false,10,3000,1.0,27670.845106240617 +N2O,2020,0.0,0.015,false,10,3000,1.0e7,27653.87036286677 +N2O,2020,0.0,0.03,true,0,2300,1.0,7505.13315970929 +N2O,2020,0.0,0.03,true,0,2300,1.0e7,7500.344827587318 +N2O,2020,0.0,0.03,true,0,3000,1.0,7505.185134018815 +N2O,2020,0.0,0.03,true,0,3000,1.0e7,7500.397876112937 +N2O,2020,0.0,0.03,true,1,2300,1.0,7505.13315970929 +N2O,2020,0.0,0.03,true,1,2300,1.0e7,7500.344827587318 +N2O,2020,0.0,0.03,true,1,3000,1.0,7505.185134018815 +N2O,2020,0.0,0.03,true,1,3000,1.0e7,7500.397876112937 +N2O,2020,0.0,0.03,true,10,2300,1.0,7505.13315970929 +N2O,2020,0.0,0.03,true,10,2300,1.0e7,7500.344827587318 +N2O,2020,0.0,0.03,true,10,3000,1.0,7505.185134018815 +N2O,2020,0.0,0.03,true,10,3000,1.0e7,7500.397876112937 +N2O,2020,0.0,0.03,false,0,2300,1.0,7505.13315970929 +N2O,2020,0.0,0.03,false,0,2300,1.0e7,7500.344827587317 +N2O,2020,0.0,0.03,false,0,3000,1.0,7505.185134018816 +N2O,2020,0.0,0.03,false,0,3000,1.0e7,7500.397876112938 +N2O,2020,0.0,0.03,false,1,2300,1.0,7505.13315970929 +N2O,2020,0.0,0.03,false,1,2300,1.0e7,7500.344827587317 +N2O,2020,0.0,0.03,false,1,3000,1.0,7505.185134018816 +N2O,2020,0.0,0.03,false,1,3000,1.0e7,7500.397876112938 +N2O,2020,0.0,0.03,false,10,2300,1.0,7505.13315970929 +N2O,2020,0.0,0.03,false,10,2300,1.0e7,7500.344827587317 +N2O,2020,0.0,0.03,false,10,3000,1.0,7505.185134018816 +N2O,2020,0.0,0.03,false,10,3000,1.0e7,7500.397876112938 +N2O,2020,1.45,0.015,true,0,2300,1.0,12187.448578872669 +N2O,2020,1.45,0.015,true,0,2300,1.0e7,12180.060208276273 +N2O,2020,1.45,0.015,true,0,3000,1.0,12183.941120296899 +N2O,2020,1.45,0.015,true,0,3000,1.0e7,12176.558271838501 +N2O,2020,1.45,0.015,true,1,2300,1.0,177484.5386759548 +N2O,2020,1.45,0.015,true,1,2300,1.0e7,177376.9426078867 +N2O,2020,1.45,0.015,true,1,3000,1.0,177433.4599236452 +N2O,2020,1.45,0.015,true,1,3000,1.0e7,177325.94427389515 +N2O,2020,1.45,0.015,true,10,2300,1.0,10123.90073719352 +N2O,2020,1.45,0.015,true,10,2300,1.0e7,10117.763346742726 +N2O,2020,1.45,0.015,true,10,3000,1.0,10120.987152596128 +N2O,2020,1.45,0.015,true,10,3000,1.0e7,10114.854349288951 +N2O,2020,1.45,0.015,false,0,2300,1.0,3371.6268604920115 +N2O,2020,1.45,0.015,false,0,2300,1.0e7,3369.321982708182 +N2O,2020,1.45,0.015,false,0,3000,1.0,3371.9934183727755 +N2O,2020,1.45,0.015,false,0,3000,1.0e7,3369.6886954676384 +N2O,2020,1.45,0.015,false,1,2300,1.0,3371.6268604920115 +N2O,2020,1.45,0.015,false,1,2300,1.0e7,3369.321982708182 +N2O,2020,1.45,0.015,false,1,3000,1.0,3371.9934183727755 +N2O,2020,1.45,0.015,false,1,3000,1.0e7,3369.6886954676384 +N2O,2020,1.45,0.015,false,10,2300,1.0,3371.6268604920115 +N2O,2020,1.45,0.015,false,10,2300,1.0e7,3369.321982708182 +N2O,2020,1.45,0.015,false,10,3000,1.0,3371.9934183727755 +N2O,2020,1.45,0.015,false,10,3000,1.0e7,3369.6886954676384 +N2O,2020,1.45,0.03,true,0,2300,1.0,5670.467747400256 +N2O,2020,1.45,0.03,true,0,2300,1.0e7,5667.015267920067 +N2O,2020,1.45,0.03,true,0,3000,1.0,5670.451444290762 +N2O,2020,1.45,0.03,true,0,3000,1.0e7,5666.999006531509 +N2O,2020,1.45,0.03,true,1,2300,1.0,82578.42859488052 +N2O,2020,1.45,0.03,true,1,2300,1.0e7,82528.15049738836 +N2O,2020,1.45,0.03,true,1,3000,1.0,82578.19117440251 +N2O,2020,1.45,0.03,true,1,3000,1.0e7,82527.91368448792 +N2O,2020,1.45,0.03,true,10,2300,1.0,4710.358549340247 +N2O,2020,1.45,0.03,true,10,2300,1.0e7,4707.4906349176 +N2O,2020,1.45,0.03,true,10,3000,1.0,4710.345006631848 +N2O,2020,1.45,0.03,true,10,3000,1.0e7,4707.477126866054 +N2O,2020,1.45,0.03,false,0,2300,1.0,1529.6228794914964 +N2O,2020,1.45,0.03,false,0,2300,1.0e7,1528.4533395494145 +N2O,2020,1.45,0.03,false,0,3000,1.0,1529.6307932761724 +N2O,2020,1.45,0.03,false,0,3000,1.0e7,1528.461258931255 +N2O,2020,1.45,0.03,false,1,2300,1.0,1529.6228794914964 +N2O,2020,1.45,0.03,false,1,2300,1.0e7,1528.4533395494145 +N2O,2020,1.45,0.03,false,1,3000,1.0,1529.6307932761724 +N2O,2020,1.45,0.03,false,1,3000,1.0e7,1528.461258931255 +N2O,2020,1.45,0.03,false,10,2300,1.0,1529.6228794914964 +N2O,2020,1.45,0.03,false,10,2300,1.0e7,1528.4533395494145 +N2O,2020,1.45,0.03,false,10,3000,1.0,1529.6307932761724 +N2O,2020,1.45,0.03,false,10,3000,1.0e7,1528.461258931255 +N2O,2055,0.0,0.015,true,0,2300,1.0,42615.9311102987 +N2O,2055,0.0,0.015,true,0,2300,1.0e7,42587.189012100665 +N2O,2055,0.0,0.015,true,0,3000,1.0,42888.564114336805 +N2O,2055,0.0,0.015,true,0,3000,1.0e7,42859.925633340026 +N2O,2055,0.0,0.015,true,1,2300,1.0,42615.9311102987 +N2O,2055,0.0,0.015,true,1,2300,1.0e7,42587.189012100665 +N2O,2055,0.0,0.015,true,1,3000,1.0,42888.564114336805 +N2O,2055,0.0,0.015,true,1,3000,1.0e7,42859.925633340026 +N2O,2055,0.0,0.015,true,10,2300,1.0,42615.9311102987 +N2O,2055,0.0,0.015,true,10,2300,1.0e7,42587.189012100665 +N2O,2055,0.0,0.015,true,10,3000,1.0,42888.564114336805 +N2O,2055,0.0,0.015,true,10,3000,1.0e7,42859.925633340026 +N2O,2055,0.0,0.015,false,0,2300,1.0,42615.93111029868 +N2O,2055,0.0,0.015,false,0,2300,1.0e7,42587.18901210064 +N2O,2055,0.0,0.015,false,0,3000,1.0,42888.56411433679 +N2O,2055,0.0,0.015,false,0,3000,1.0e7,42859.92563334002 +N2O,2055,0.0,0.015,false,1,2300,1.0,42615.93111029868 +N2O,2055,0.0,0.015,false,1,2300,1.0e7,42587.18901210064 +N2O,2055,0.0,0.015,false,1,3000,1.0,42888.56411433679 +N2O,2055,0.0,0.015,false,1,3000,1.0e7,42859.92563334002 +N2O,2055,0.0,0.015,false,10,2300,1.0,42615.93111029868 +N2O,2055,0.0,0.015,false,10,2300,1.0e7,42587.18901210064 +N2O,2055,0.0,0.015,false,10,3000,1.0,42888.56411433679 +N2O,2055,0.0,0.015,false,10,3000,1.0e7,42859.92563334002 +N2O,2055,0.0,0.03,true,0,2300,1.0,14058.28054284725 +N2O,2055,0.0,0.03,true,0,2300,1.0e7,14047.76671861728 +N2O,2055,0.0,0.03,true,0,3000,1.0,14065.570324444689 +N2O,2055,0.0,0.03,true,0,3000,1.0e7,14055.055622579735 +N2O,2055,0.0,0.03,true,1,2300,1.0,14058.28054284725 +N2O,2055,0.0,0.03,true,1,2300,1.0e7,14047.76671861728 +N2O,2055,0.0,0.03,true,1,3000,1.0,14065.570324444689 +N2O,2055,0.0,0.03,true,1,3000,1.0e7,14055.055622579735 +N2O,2055,0.0,0.03,true,10,2300,1.0,14058.28054284725 +N2O,2055,0.0,0.03,true,10,2300,1.0e7,14047.76671861728 +N2O,2055,0.0,0.03,true,10,3000,1.0,14065.570324444689 +N2O,2055,0.0,0.03,true,10,3000,1.0e7,14055.055622579735 +N2O,2055,0.0,0.03,false,0,2300,1.0,14058.28054284725 +N2O,2055,0.0,0.03,false,0,2300,1.0e7,14047.76671861728 +N2O,2055,0.0,0.03,false,0,3000,1.0,14065.570324444689 +N2O,2055,0.0,0.03,false,0,3000,1.0e7,14055.055622579735 +N2O,2055,0.0,0.03,false,1,2300,1.0,14058.28054284725 +N2O,2055,0.0,0.03,false,1,2300,1.0e7,14047.76671861728 +N2O,2055,0.0,0.03,false,1,3000,1.0,14065.570324444689 +N2O,2055,0.0,0.03,false,1,3000,1.0e7,14055.055622579735 +N2O,2055,0.0,0.03,false,10,2300,1.0,14058.28054284725 +N2O,2055,0.0,0.03,false,10,2300,1.0e7,14047.76671861728 +N2O,2055,0.0,0.03,false,10,3000,1.0,14065.570324444689 +N2O,2055,0.0,0.03,false,10,3000,1.0e7,14055.055622579735 +N2O,2055,1.45,0.015,true,0,2300,1.0,20225.8804685703 +N2O,2055,1.45,0.015,true,0,2300,1.0e7,20210.792103414584 +N2O,2055,1.45,0.015,true,0,3000,1.0,20235.44550519302 +N2O,2055,1.45,0.015,true,0,3000,1.0e7,20220.363792143064 +N2O,2055,1.45,0.015,true,1,2300,1.0,294664.53406659694 +N2O,2055,1.45,0.015,true,1,2300,1.0e7,294444.7163881853 +N2O,2055,1.45,0.015,true,1,3000,1.0,294803.88409707614 +N2O,2055,1.45,0.015,true,1,3000,1.0e7,294584.16333111504 +N2O,2055,1.45,0.015,true,10,2300,1.0,27891.401455941188 +N2O,2055,1.45,0.015,true,10,2300,1.0e7,27870.59466582266 +N2O,2055,1.45,0.015,true,10,3000,1.0,27904.591599964802 +N2O,2055,1.45,0.015,true,10,3000,1.0e7,27883.793983071282 +N2O,2055,1.45,0.015,false,0,2300,1.0,8393.07991302576 +N2O,2055,1.45,0.015,false,0,2300,1.0e7,8386.639913715011 +N2O,2055,1.45,0.015,false,0,3000,1.0,8402.34029301096 +N2O,2055,1.45,0.015,false,0,3000,1.0e7,8395.898755845965 +N2O,2055,1.45,0.015,false,1,2300,1.0,8393.07991302576 +N2O,2055,1.45,0.015,false,1,2300,1.0e7,8386.639913715011 +N2O,2055,1.45,0.015,false,1,3000,1.0,8402.34029301096 +N2O,2055,1.45,0.015,false,1,3000,1.0e7,8395.898755845965 +N2O,2055,1.45,0.015,false,10,2300,1.0,8393.07991302576 +N2O,2055,1.45,0.015,false,10,2300,1.0e7,8386.639913715011 +N2O,2055,1.45,0.015,false,10,3000,1.0,8402.34029301096 +N2O,2055,1.45,0.015,false,10,3000,1.0e7,8395.898755845965 +N2O,2055,1.45,0.03,true,0,2300,1.0,9714.327983154117 +N2O,2055,1.45,0.03,true,0,2300,1.0e7,9706.67477943685 +N2O,2055,1.45,0.03,true,0,3000,1.0,9714.597457380863 +N2O,2055,1.45,0.03,true,0,3000,1.0e7,9706.944284946074 +N2O,2055,1.45,0.03,true,1,2300,1.0,141525.00967136148 +N2O,2055,1.45,0.03,true,1,2300,1.0e7,141413.51253723324 +N2O,2055,1.45,0.03,true,1,3000,1.0,141528.93555718832 +N2O,2055,1.45,0.03,true,1,3000,1.0e7,141417.43887880477 +N2O,2055,1.45,0.03,true,10,2300,1.0,13396.016162256457 +N2O,2055,1.45,0.03,true,10,2300,1.0e7,13385.462427518722 +N2O,2055,1.45,0.03,true,10,3000,1.0,13396.387766046555 +N2O,2055,1.45,0.03,true,10,3000,1.0e7,13385.834074447223 +N2O,2055,1.45,0.03,false,0,2300,1.0,3983.2520607338306 +N2O,2055,1.45,0.03,false,0,2300,1.0e7,3979.911486732791 +N2O,2055,1.45,0.03,false,0,3000,1.0,3983.4494352315696 +N2O,2055,1.45,0.03,false,0,3000,1.0e7,3980.1088283843537 +N2O,2055,1.45,0.03,false,1,2300,1.0,3983.2520607338306 +N2O,2055,1.45,0.03,false,1,2300,1.0e7,3979.911486732791 +N2O,2055,1.45,0.03,false,1,3000,1.0,3983.4494352315696 +N2O,2055,1.45,0.03,false,1,3000,1.0e7,3980.1088283843537 +N2O,2055,1.45,0.03,false,10,2300,1.0,3983.2520607338306 +N2O,2055,1.45,0.03,false,10,2300,1.0e7,3979.911486732791 +N2O,2055,1.45,0.03,false,10,3000,1.0,3983.4494352315696 +N2O,2055,1.45,0.03,false,10,3000,1.0e7,3980.1088283843537 +SF6,2020,0.0,0.015,true,0,2300,1.0,2023.4946329456955 +SF6,2020,0.0,0.015,true,0,2300,1.0e7,2023.430591014007 +SF6,2020,0.0,0.015,true,0,3000,1.0,2194.9505794973547 +SF6,2020,0.0,0.015,true,0,3000,1.0e7,2194.933692612135 +SF6,2020,0.0,0.015,true,1,2300,1.0,2023.4946329456955 +SF6,2020,0.0,0.015,true,1,2300,1.0e7,2023.430591014007 +SF6,2020,0.0,0.015,true,1,3000,1.0,2194.9505794973547 +SF6,2020,0.0,0.015,true,1,3000,1.0e7,2194.933692612135 +SF6,2020,0.0,0.015,true,10,2300,1.0,2023.4946329456955 +SF6,2020,0.0,0.015,true,10,2300,1.0e7,2023.430591014007 +SF6,2020,0.0,0.015,true,10,3000,1.0,2194.9505794973547 +SF6,2020,0.0,0.015,true,10,3000,1.0e7,2194.933692612135 +SF6,2020,0.0,0.015,false,0,2300,1.0,2023.4946329456948 +SF6,2020,0.0,0.015,false,0,2300,1.0e7,2023.4305910140063 +SF6,2020,0.0,0.015,false,0,3000,1.0,2194.950579497354 +SF6,2020,0.0,0.015,false,0,3000,1.0e7,2194.933692612134 +SF6,2020,0.0,0.015,false,1,2300,1.0,2023.4946329456948 +SF6,2020,0.0,0.015,false,1,2300,1.0e7,2023.4305910140063 +SF6,2020,0.0,0.015,false,1,3000,1.0,2194.950579497354 +SF6,2020,0.0,0.015,false,1,3000,1.0e7,2194.933692612134 +SF6,2020,0.0,0.015,false,10,2300,1.0,2023.4946329456948 +SF6,2020,0.0,0.015,false,10,2300,1.0e7,2023.4305910140063 +SF6,2020,0.0,0.015,false,10,3000,1.0,2194.950579497354 +SF6,2020,0.0,0.015,false,10,3000,1.0e7,2194.933692612134 +SF6,2020,0.0,0.03,true,0,2300,1.0,403.5427802784796 +SF6,2020,0.0,0.03,true,0,2300,1.0e7,403.52141444268335 +SF6,2020,0.0,0.03,true,0,3000,1.0,404.8556759514388 +SF6,2020,0.0,0.03,true,0,3000,1.0e7,404.8348465064083 +SF6,2020,0.0,0.03,true,1,2300,1.0,403.5427802784796 +SF6,2020,0.0,0.03,true,1,2300,1.0e7,403.52141444268335 +SF6,2020,0.0,0.03,true,1,3000,1.0,404.8556759514388 +SF6,2020,0.0,0.03,true,1,3000,1.0e7,404.8348465064083 +SF6,2020,0.0,0.03,true,10,2300,1.0,403.5427802784796 +SF6,2020,0.0,0.03,true,10,2300,1.0e7,403.52141444268335 +SF6,2020,0.0,0.03,true,10,3000,1.0,404.8556759514388 +SF6,2020,0.0,0.03,true,10,3000,1.0e7,404.8348465064083 +SF6,2020,0.0,0.03,false,0,2300,1.0,403.54278027847954 +SF6,2020,0.0,0.03,false,0,2300,1.0e7,403.5214144426833 +SF6,2020,0.0,0.03,false,0,3000,1.0,404.8556759514388 +SF6,2020,0.0,0.03,false,0,3000,1.0e7,404.8348465064083 +SF6,2020,0.0,0.03,false,1,2300,1.0,403.54278027847954 +SF6,2020,0.0,0.03,false,1,2300,1.0e7,403.5214144426833 +SF6,2020,0.0,0.03,false,1,3000,1.0,404.8556759514388 +SF6,2020,0.0,0.03,false,1,3000,1.0e7,404.8348465064083 +SF6,2020,0.0,0.03,false,10,2300,1.0,403.54278027847954 +SF6,2020,0.0,0.03,false,10,2300,1.0e7,403.5214144426833 +SF6,2020,0.0,0.03,false,10,3000,1.0,404.8556759514388 +SF6,2020,0.0,0.03,false,10,3000,1.0e7,404.8348465064083 +SF6,2020,1.45,0.015,true,0,2300,1.0,591.6943285680443 +SF6,2020,1.45,0.015,true,0,2300,1.0e7,591.6693642709989 +SF6,2020,1.45,0.015,true,0,3000,1.0,594.7188113140367 +SF6,2020,1.45,0.015,true,0,3000,1.0e7,594.694763763972 +SF6,2020,1.45,0.015,true,1,2300,1.0,8616.782607405437 +SF6,2020,1.45,0.015,true,1,2300,1.0e7,8616.41905495918 +SF6,2020,1.45,0.015,true,1,3000,1.0,8660.827833231984 +SF6,2020,1.45,0.015,true,1,3000,1.0e7,8660.477631276106 +SF6,2020,1.45,0.015,true,10,2300,1.0,491.5101475437234 +SF6,2020,1.45,0.015,true,10,2300,1.0e7,491.48941013805353 +SF6,2020,1.45,0.015,true,10,3000,1.0,494.02253255225276 +SF6,2020,1.45,0.015,true,10,3000,1.0e7,494.0025566722929 +SF6,2020,1.45,0.015,false,0,2300,1.0,173.47958044317082 +SF6,2020,1.45,0.015,false,0,2300,1.0e7,173.47012492249542 +SF6,2020,1.45,0.015,false,0,3000,1.0,174.82298529015782 +SF6,2020,1.45,0.015,false,0,3000,1.0e7,174.81402174116934 +SF6,2020,1.45,0.015,false,1,2300,1.0,173.47958044317082 +SF6,2020,1.45,0.015,false,1,2300,1.0e7,173.47012492249542 +SF6,2020,1.45,0.015,false,1,3000,1.0,174.82298529015782 +SF6,2020,1.45,0.015,false,1,3000,1.0e7,174.81402174116934 +SF6,2020,1.45,0.015,false,10,2300,1.0,173.47958044317082 +SF6,2020,1.45,0.015,false,10,2300,1.0e7,173.47012492249542 +SF6,2020,1.45,0.015,false,10,3000,1.0,174.82298529015782 +SF6,2020,1.45,0.015,false,10,3000,1.0e7,174.81402174116934 +SF6,2020,1.45,0.03,true,0,2300,1.0,239.67348212688427 +SF6,2020,1.45,0.03,true,0,2300,1.0e7,239.66301526237956 +SF6,2020,1.45,0.03,true,0,3000,1.0,239.7026252376482 +SF6,2020,1.45,0.03,true,0,3000,1.0e7,239.69216955316972 +SF6,2020,1.45,0.03,true,1,2300,1.0,3490.3398470038514 +SF6,2020,1.45,0.03,true,1,2300,1.0e7,3490.1874191510506 +SF6,2020,1.45,0.03,true,1,3000,1.0,3490.764255077128 +SF6,2020,1.45,0.03,true,1,3000,1.0e7,3490.611990037881 +SF6,2020,1.45,0.03,true,10,2300,1.0,199.09257681680774 +SF6,2020,1.45,0.03,true,10,2300,1.0e7,199.08388217521897 +SF6,2020,1.45,0.03,true,10,3000,1.0,199.11678549007007 +SF6,2020,1.45,0.03,true,10,3000,1.0e7,199.10810013553385 +SF6,2020,1.45,0.03,false,0,2300,1.0,66.64707249813779 +SF6,2020,1.45,0.03,false,0,2300,1.0e7,66.64425943789176 +SF6,2020,1.45,0.03,false,0,3000,1.0,66.66071591612766 +SF6,2020,1.45,0.03,false,0,3000,1.0e7,66.65790891782595 +SF6,2020,1.45,0.03,false,1,2300,1.0,66.64707249813779 +SF6,2020,1.45,0.03,false,1,2300,1.0e7,66.64425943789176 +SF6,2020,1.45,0.03,false,1,3000,1.0,66.66071591612766 +SF6,2020,1.45,0.03,false,1,3000,1.0e7,66.65790891782595 +SF6,2020,1.45,0.03,false,10,2300,1.0,66.64707249813779 +SF6,2020,1.45,0.03,false,10,2300,1.0e7,66.64425943789176 +SF6,2020,1.45,0.03,false,10,3000,1.0,66.66071591612766 +SF6,2020,1.45,0.03,false,10,3000,1.0e7,66.65790891782595 +SF6,2055,0.0,0.015,true,0,2300,1.0,2835.2694535054716 +SF6,2055,0.0,0.015,true,0,2300,1.0e7,2834.7975035718373 +SF6,2055,0.0,0.015,true,0,3000,1.0,3144.050613275262 +SF6,2055,0.0,0.015,true,0,3000,1.0e7,3143.589927352348 +SF6,2055,0.0,0.015,true,1,2300,1.0,2835.2694535054716 +SF6,2055,0.0,0.015,true,1,2300,1.0e7,2834.7975035718373 +SF6,2055,0.0,0.015,true,1,3000,1.0,3144.050613275262 +SF6,2055,0.0,0.015,true,1,3000,1.0e7,3143.589927352348 +SF6,2055,0.0,0.015,true,10,2300,1.0,2835.2694535054716 +SF6,2055,0.0,0.015,true,10,2300,1.0e7,2834.7975035718373 +SF6,2055,0.0,0.015,true,10,3000,1.0,3144.050613275262 +SF6,2055,0.0,0.015,true,10,3000,1.0e7,3143.589927352348 +SF6,2055,0.0,0.015,false,0,2300,1.0,2835.2694535054707 +SF6,2055,0.0,0.015,false,0,2300,1.0e7,2834.7975035718364 +SF6,2055,0.0,0.015,false,0,3000,1.0,3144.0506132752607 +SF6,2055,0.0,0.015,false,0,3000,1.0e7,3143.5899273523464 +SF6,2055,0.0,0.015,false,1,2300,1.0,2835.2694535054707 +SF6,2055,0.0,0.015,false,1,2300,1.0e7,2834.7975035718364 +SF6,2055,0.0,0.015,false,1,3000,1.0,3144.0506132752607 +SF6,2055,0.0,0.015,false,1,3000,1.0e7,3143.5899273523464 +SF6,2055,0.0,0.015,false,10,2300,1.0,2835.2694535054707 +SF6,2055,0.0,0.015,false,10,2300,1.0e7,2834.7975035718364 +SF6,2055,0.0,0.015,false,10,3000,1.0,3144.0506132752607 +SF6,2055,0.0,0.015,false,10,3000,1.0e7,3143.5899273523464 +SF6,2055,0.0,0.03,true,0,2300,1.0,727.9216665868832 +SF6,2055,0.0,0.03,true,0,2300,1.0e7,727.7733478531602 +SF6,2055,0.0,0.03,true,0,3000,1.0,731.8612900198456 +SF6,2055,0.0,0.03,true,0,3000,1.0e7,731.7131893979737 +SF6,2055,0.0,0.03,true,1,2300,1.0,727.9216665868832 +SF6,2055,0.0,0.03,true,1,2300,1.0e7,727.7733478531602 +SF6,2055,0.0,0.03,true,1,3000,1.0,731.8612900198456 +SF6,2055,0.0,0.03,true,1,3000,1.0e7,731.7131893979737 +SF6,2055,0.0,0.03,true,10,2300,1.0,727.9216665868832 +SF6,2055,0.0,0.03,true,10,2300,1.0e7,727.7733478531602 +SF6,2055,0.0,0.03,true,10,3000,1.0,731.8612900198456 +SF6,2055,0.0,0.03,true,10,3000,1.0e7,731.7131893979737 +SF6,2055,0.0,0.03,false,0,2300,1.0,727.9216665868831 +SF6,2055,0.0,0.03,false,0,2300,1.0e7,727.7733478531602 +SF6,2055,0.0,0.03,false,0,3000,1.0,731.8612900198456 +SF6,2055,0.0,0.03,false,0,3000,1.0e7,731.7131893979737 +SF6,2055,0.0,0.03,false,1,2300,1.0,727.9216665868831 +SF6,2055,0.0,0.03,false,1,2300,1.0e7,727.7733478531602 +SF6,2055,0.0,0.03,false,1,3000,1.0,731.8612900198456 +SF6,2055,0.0,0.03,false,1,3000,1.0e7,731.7131893979737 +SF6,2055,0.0,0.03,false,10,2300,1.0,727.9216665868831 +SF6,2055,0.0,0.03,false,10,2300,1.0e7,727.7733478531602 +SF6,2055,0.0,0.03,false,10,3000,1.0,731.8612900198456 +SF6,2055,0.0,0.03,false,10,3000,1.0e7,731.7131893979737 +SF6,2055,1.45,0.015,true,0,2300,1.0,1013.6504751740747 +SF6,2055,1.45,0.015,true,0,2300,1.0e7,1013.4544936505962 +SF6,2055,1.45,0.015,true,0,3000,1.0,1024.7875393060262 +SF6,2055,1.45,0.015,true,0,3000,1.0e7,1024.5918657556817 +SF6,2055,1.45,0.015,true,1,2300,1.0,14767.55711266529 +SF6,2055,1.45,0.015,true,1,2300,1.0e7,14764.701919073537 +SF6,2055,1.45,0.015,true,1,3000,1.0,14929.809520831695 +SF6,2055,1.45,0.015,true,1,3000,1.0e7,14926.95881400432 +SF6,2055,1.45,0.015,true,10,2300,1.0,1397.8196095353528 +SF6,2055,1.45,0.015,true,10,2300,1.0e7,1397.5493518643566 +SF6,2055,1.45,0.015,true,10,3000,1.0,1413.177572677058 +SF6,2055,1.45,0.015,true,10,3000,1.0e7,1412.9077396996777 +SF6,2055,1.45,0.015,false,0,2300,1.0,435.6968432281421 +SF6,2055,1.45,0.015,false,0,2300,1.0e7,435.6061910042096 +SF6,2055,1.45,0.015,false,0,3000,1.0,441.620798476642 +SF6,2055,1.45,0.015,false,0,3000,1.0e7,441.5304365359936 +SF6,2055,1.45,0.015,false,1,2300,1.0,435.6968432281421 +SF6,2055,1.45,0.015,false,1,2300,1.0e7,435.6061910042096 +SF6,2055,1.45,0.015,false,1,3000,1.0,441.620798476642 +SF6,2055,1.45,0.015,false,1,3000,1.0e7,441.5304365359936 +SF6,2055,1.45,0.015,false,10,2300,1.0,435.6968432281421 +SF6,2055,1.45,0.015,false,10,2300,1.0e7,435.6061910042096 +SF6,2055,1.45,0.015,false,10,3000,1.0,441.620798476642 +SF6,2055,1.45,0.015,false,10,3000,1.0e7,441.5304365359936 +SF6,2055,1.45,0.03,true,0,2300,1.0,426.4655203175369 +SF6,2055,1.45,0.03,true,0,2300,1.0e7,426.3851625821165 +SF6,2055,1.45,0.03,true,0,3000,1.0,426.64428866611183 +SF6,2055,1.45,0.03,true,0,3000,1.0e7,426.5639385401738 +SF6,2055,1.45,0.03,true,1,2300,1.0,6213.042939471037 +SF6,2055,1.45,0.03,true,1,2300,1.0e7,6211.872232727115 +SF6,2055,1.45,0.03,true,1,3000,1.0,6215.647359694945 +SF6,2055,1.45,0.03,true,1,3000,1.0e7,6214.476763811197 +SF6,2055,1.45,0.03,true,10,2300,1.0,588.0941031356774 +SF6,2055,1.45,0.03,true,10,2300,1.0e7,587.9832901670067 +SF6,2055,1.45,0.03,true,10,3000,1.0,588.3406239131272 +SF6,2055,1.45,0.03,true,10,3000,1.0e7,588.2298214378998 +SF6,2055,1.45,0.03,false,0,2300,1.0,178.40705678487393 +SF6,2055,1.45,0.03,false,0,2300,1.0e7,178.37123187913878 +SF6,2055,1.45,0.03,false,0,3000,1.0,178.5065830064154 +SF6,2055,1.45,0.03,false,0,3000,1.0e7,178.47076471120545 +SF6,2055,1.45,0.03,false,1,2300,1.0,178.40705678487393 +SF6,2055,1.45,0.03,false,1,2300,1.0e7,178.37123187913878 +SF6,2055,1.45,0.03,false,1,3000,1.0,178.5065830064154 +SF6,2055,1.45,0.03,false,1,3000,1.0e7,178.47076471120545 +SF6,2055,1.45,0.03,false,10,2300,1.0,178.40705678487393 +SF6,2055,1.45,0.03,false,10,2300,1.0e7,178.37123187913878 +SF6,2055,1.45,0.03,false,10,3000,1.0,178.5065830064154 +SF6,2055,1.45,0.03,false,10,3000,1.0e7,178.47076471120545 diff --git a/test/SC validation data/mcs_sc_values.csv b/test/SC validation data/mcs_sc_values.csv new file mode 100644 index 00000000..ef2d4f58 --- /dev/null +++ b/test/SC validation data/mcs_sc_values.csv @@ -0,0 +1,26 @@ +"SCCO2" +-4.727072235862176 +-4.3090329580009215 +3.6145724816463534 +3.388158675360172 +6.197087711075783 +1.1421757414758535 +0.700337555203371 +8.522013290881711 +4.1491971913508925 +-1.5932606841951669 +-0.158209888129621 +0.22206880100316617 +0.2728548753220188 +13.837093241758502 +-6.208088524086534 +-0.04602452151196609 +1.850405538712209 +-0.03557264124460824 +3.578836749342496 +1.7589233539488456 +3.813403313254857 +1.8608778705710274 +6.304001487425381 +7.03327618525018 +3.689291110512766 diff --git a/test/runtests.jl b/test/runtests.jl index 9cc07b60..1b162c5b 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -157,6 +157,12 @@ MimiFUND.run_fund_scc_mcs(10) # Run 10 trials of FUND MCS SCC calculations end #test-mcs testset +#------------------------------------------------------------------------------ +# 5. Validation tests for the exact values of social cost calculatiosn +#------------------------------------------------------------------------------ + +include("scc_validation.jl") + end #fund testset nothing diff --git a/test/scc_validation.jl b/test/scc_validation.jl new file mode 100644 index 00000000..8d4fceb2 --- /dev/null +++ b/test/scc_validation.jl @@ -0,0 +1,52 @@ +using MimiFUND +using DataFrames +using Query +using CSVFiles +using Test + +datadir = joinpath(@__DIR__, "SC validation data") + +# Test deterministic SC for all types of configurations + +specs = Dict([ + :gas => [:CO2, :CH4, :N2O, :SF6], + :year => [2020, 2055], + :eta => [0, 1.45], + :prtp => [0.015, 0.03], + :equity_weights => [true, false], + :equity_weights_normalization_region => [0, 1, 10], + :last_year => [2300, 3000], + :pulse_size => [1, 1e7] +]) + +results = DataFrame(gas = [], year = [], eta = [], prtp = [], equity_weights = [], equity_weights_normalization_region = [], last_year = [], pulse_size = [], SC = []) + +for gas in specs[:gas] + for year in specs[:year] + for eta in specs[:eta] + for prtp in specs[:prtp] + for equity_weights in specs[:equity_weights] + for equity_weights_normalization_region in specs[:equity_weights_normalization_region] + for last_year in specs[:last_year] + for pulse_size in specs[:pulse_size] + sc = MimiFUND.compute_sc(gas=gas, year=year, eta=eta, prtp=prtp, equity_weights=equity_weights, equity_weights_normalization_region=equity_weights_normalization_region, last_year=last_year, pulse_size=pulse_size) + push!(results, (gas, year, eta, prtp, equity_weights, equity_weights_normalization_region, last_year, pulse_size, sc)) + end + end + end + end + end + end + end +end + +validation_results = load(joinpath(datadir, "deterministic_sc_values.csv")) |> DataFrame +@test all(isapprox.(results[!, :SC], validation_results[!, :SC], atol = 1e-11)) + + +# Test Monte Carlo results with the same seed + +sc_mcs = MimiFUND.compute_sc(gas = :CO2, year = 2020, eta = 1.45, prtp = 0.015, n = 25, seed = 350) +validation_mcs = load(joinpath(datadir, "mcs_sc_values.csv")) |> DataFrame + +@test sc_mcs == validation_mcs[!, :SCCO2] \ No newline at end of file From 819c4a1f696c724510a5f9f7cce3273282c1a7ca Mon Sep 17 00:00:00 2001 From: Cora Kingdon Date: Thu, 3 Oct 2019 12:42:15 -0400 Subject: [PATCH 4/7] Add Query to [extras] in Project.toml --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index 690504dd..a928d381 100644 --- a/Project.toml +++ b/Project.toml @@ -14,6 +14,7 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" CSVFiles = "5d742f6a-9f54-50ce-8119-2520741973ca" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +Query = "1a8c2f83-1ff3-5112-b086-8aa67b057ba1" [compat] julia = "1" From 7642fd3ed7c3a10a36235ebd334e4015a943a089 Mon Sep 17 00:00:00 2001 From: Cora Kingdon Date: Thu, 3 Oct 2019 16:33:42 -0400 Subject: [PATCH 5/7] Only test a subset of validation SC values --- test/runtests.jl | 33 ++++++++++++++++++- ...c_validation.jl => scc_validation_full.jl} | 18 ++++------ 2 files changed, 39 insertions(+), 12 deletions(-) rename test/{scc_validation.jl => scc_validation_full.jl} (77%) diff --git a/test/runtests.jl b/test/runtests.jl index 1b162c5b..5d821169 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -3,6 +3,7 @@ using Mimi using Test using DataFrames using CSVFiles +using Query @testset "fund" begin @@ -161,7 +162,37 @@ end #test-mcs testset # 5. Validation tests for the exact values of social cost calculatiosn #------------------------------------------------------------------------------ -include("scc_validation.jl") +@testset "sc-validation" begin + +datadir = joinpath(@__DIR__, "SC validation data") + +# Test a subset of all validation configurations against the pre-saved values from MimiFUND v3.11.7 + +validation_results = load(joinpath(datadir, "deterministic_sc_values.csv")) |> DataFrame + +for spec in [ + (gas = :CO2, year = 2020, eta = 0., prtp = 0.03, equity_weights = true, equity_weights_normalization_region = 1, last_year = 3000, pulse_size = 1.), + (gas = :CH4, year = 2055, eta = 1.45, prtp = 0.015, equity_weights = false, equity_weights_normalization_region = 0, last_year = 2300, pulse_size = 1e7), + (gas = :N2O, year = 2020, eta = 1.45, prtp = 0.03, equity_weights = false, equity_weights_normalization_region = 0, last_year = 3000, pulse_size = 1e7), + (gas = :CO2, year = 2055, eta = 0., prtp = 0.015, equity_weights = true, equity_weights_normalization_region = 10, last_year = 2300, pulse_size = 1.) +] + # Compute the value for this set of keyword arguments + sc = MimiFUND.compute_sc(gas = spec.gas, year = spec.year, eta = spec.eta, prtp = spec.prtp, equity_weights = spec.equity_weights, equity_weights_normalization_region = spec.equity_weights_normalization_region, last_year = spec.last_year, pulse_size = spec.pulse_size) + + # Get the pre-saved value for this set of keyword arguments + validation_value = validation_results |> + @filter(_.gas == string(spec.gas) && _.year == spec.year && _.eta == spec.eta && _.prtp == spec.prtp && _.equity_weights == string(spec.equity_weights) && _.equity_weights_normalization_region == spec.equity_weights_normalization_region && _.last_year == spec.last_year && _.pulse_size == spec.pulse_size) |> + DataFrame + + @test sc ≈ validation_value[1, :SC] atol = 1e-11 +end + +# Test Monte Carlo results with the same configuration and seed +sc_mcs = MimiFUND.compute_sc(gas = :CO2, year = 2020, eta = 1.45, prtp = 0.015, n = 25, seed = 350) +validation_mcs = load(joinpath(datadir, "mcs_sc_values.csv")) |> DataFrame +@test all(isapprox.(sc_mcs, validation_mcs[!, :SCCO2], atol = 1e-11)) + +end end #fund testset diff --git a/test/scc_validation.jl b/test/scc_validation_full.jl similarity index 77% rename from test/scc_validation.jl rename to test/scc_validation_full.jl index 8d4fceb2..6e868624 100644 --- a/test/scc_validation.jl +++ b/test/scc_validation_full.jl @@ -1,3 +1,9 @@ +# This test file is not run during Travis builds, since it takes >10 minutes to run. +# This file can be run manually to check that Social Cost calculations using all possibilities of +# parameter values defined in the specs dictionary below produce the same results. A subset of +# these values are tested in the "runtests.jl" file deployed by Travis. The validation of these +# runs depends on the pre-saved values from MimiFUND v3.11.7 in the "SC validation data" folder. + using MimiFUND using DataFrames using Query @@ -6,8 +12,6 @@ using Test datadir = joinpath(@__DIR__, "SC validation data") -# Test deterministic SC for all types of configurations - specs = Dict([ :gas => [:CO2, :CH4, :N2O, :SF6], :year => [2020, 2055], @@ -41,12 +45,4 @@ for gas in specs[:gas] end validation_results = load(joinpath(datadir, "deterministic_sc_values.csv")) |> DataFrame -@test all(isapprox.(results[!, :SC], validation_results[!, :SC], atol = 1e-11)) - - -# Test Monte Carlo results with the same seed - -sc_mcs = MimiFUND.compute_sc(gas = :CO2, year = 2020, eta = 1.45, prtp = 0.015, n = 25, seed = 350) -validation_mcs = load(joinpath(datadir, "mcs_sc_values.csv")) |> DataFrame - -@test sc_mcs == validation_mcs[!, :SCCO2] \ No newline at end of file +@test all(isapprox.(results[!, :SC], validation_results[!, :SC], atol = 1e-11)) \ No newline at end of file From 9994a0884f1cef57cea53858519fae53af941f25 Mon Sep 17 00:00:00 2001 From: Cora Kingdon Date: Thu, 3 Oct 2019 16:43:14 -0400 Subject: [PATCH 6/7] typos --- test/runtests.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 5d821169..05898eef 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -159,7 +159,7 @@ MimiFUND.run_fund_scc_mcs(10) # Run 10 trials of FUND MCS SCC calculations end #test-mcs testset #------------------------------------------------------------------------------ -# 5. Validation tests for the exact values of social cost calculatiosn +# 5. Validation tests for the exact values of social cost calculations #------------------------------------------------------------------------------ @testset "sc-validation" begin @@ -174,7 +174,7 @@ for spec in [ (gas = :CO2, year = 2020, eta = 0., prtp = 0.03, equity_weights = true, equity_weights_normalization_region = 1, last_year = 3000, pulse_size = 1.), (gas = :CH4, year = 2055, eta = 1.45, prtp = 0.015, equity_weights = false, equity_weights_normalization_region = 0, last_year = 2300, pulse_size = 1e7), (gas = :N2O, year = 2020, eta = 1.45, prtp = 0.03, equity_weights = false, equity_weights_normalization_region = 0, last_year = 3000, pulse_size = 1e7), - (gas = :CO2, year = 2055, eta = 0., prtp = 0.015, equity_weights = true, equity_weights_normalization_region = 10, last_year = 2300, pulse_size = 1.) + (gas = :SF6, year = 2055, eta = 0., prtp = 0.015, equity_weights = true, equity_weights_normalization_region = 10, last_year = 2300, pulse_size = 1.) ] # Compute the value for this set of keyword arguments sc = MimiFUND.compute_sc(gas = spec.gas, year = spec.year, eta = spec.eta, prtp = spec.prtp, equity_weights = spec.equity_weights, equity_weights_normalization_region = spec.equity_weights_normalization_region, last_year = spec.last_year, pulse_size = spec.pulse_size) From 06be575a13438440a8ba03b0d24b6a407f8b7cc3 Mon Sep 17 00:00:00 2001 From: Cora Kingdon Date: Fri, 4 Oct 2019 11:42:56 -0400 Subject: [PATCH 7/7] adjust precision tolerance of SCC tests --- test/runtests.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index 05898eef..f0ef02e3 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -165,6 +165,7 @@ end #test-mcs testset @testset "sc-validation" begin datadir = joinpath(@__DIR__, "SC validation data") +atol = 1e-2 # Test a subset of all validation configurations against the pre-saved values from MimiFUND v3.11.7 @@ -184,13 +185,13 @@ for spec in [ @filter(_.gas == string(spec.gas) && _.year == spec.year && _.eta == spec.eta && _.prtp == spec.prtp && _.equity_weights == string(spec.equity_weights) && _.equity_weights_normalization_region == spec.equity_weights_normalization_region && _.last_year == spec.last_year && _.pulse_size == spec.pulse_size) |> DataFrame - @test sc ≈ validation_value[1, :SC] atol = 1e-11 + @test sc ≈ validation_value[1, :SC] atol = atol end # Test Monte Carlo results with the same configuration and seed sc_mcs = MimiFUND.compute_sc(gas = :CO2, year = 2020, eta = 1.45, prtp = 0.015, n = 25, seed = 350) validation_mcs = load(joinpath(datadir, "mcs_sc_values.csv")) |> DataFrame -@test all(isapprox.(sc_mcs, validation_mcs[!, :SCCO2], atol = 1e-11)) +@test all(isapprox.(sc_mcs, validation_mcs[!, :SCCO2], atol = atol)) end