unique_id_filter = []

# Compile
unique_id_filter.append('compile')

# Runtime
unique_id_filter.append('runtime.disc_space')
unique_id_filter.append('runtime.rexi')
unique_id_filter.append('runtime.simparams')
unique_id_filter.append('runtime.benchmark')

# Parallelization
unique_id_filter.append('parallelization')

jg.unique_id_filter = unique_id_filter

#
# Reference solution
if True:
    #if False:
    print("Reference")
    tsm = ts_methods[0]

    jg.parallelization.max_wallclock_seconds = ref_max_wallclock_seconds

    SetupSpectralMethods(jg)
    jg.runtime.timestep_size = 2  # second #jg.runtime.output_timestep_size/100.0
    jg.runtime.timestepping_method = tsm[0]
    jg.runtime.timestepping_order = tsm[1]
    jg.runtime.timestepping_order2 = tsm[2]
jg.runtime.benchmark_name = 'benchmark_id_1'

jg.runtime.gravitation= 1
jg.runtime.sphere_rotating_coriolis_omega = 1
jg.runtime.h0 = 1
jg.runtime.plane_domain_size = 1

jg.runtime.rexi_method = 'direct'

jg.runtime.viscosity = 0.0

jg.runtime.max_simulation_time = 0.1
jg.runtime.output_timestep_size = jg.runtime.max_simulation_time

jg.unique_id_filter = ['compile', 'runtime.benchmark', 'runtime.simparams']

timestep_size_reference = 0.0001
timestep_sizes = [0.0001*(2.0**i) for i in range(0, 11)]


# Groups to execute, see below
# l: linear
# ln: linear and nonlinear
groups = ['l1', 'l2', 'ln1', 'ln2', 'ln4']
#groups = ['ln2test']

if len(sys.argv) > 1:
    groups = [sys.argv[1]]

print("Groups: "+str(groups))