1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
|
# File 'lib/gs2crmod/gs2.rb', line 1441
def convert_to_index(run, *names)
if self[:strongest_non_zonal_mode]
ky_element, kx_element = run.gsl_matrix('spectrum_over_ky_over_kx', no_zonal: true).max_index
p self[:kx_index] = kx_element + 1
p self[:ky_index] = ky_element + 1
self[:strongest_non_zonal_mode] = false
end
raise "No names specified" if names.size == 0
names.each do |name|
if name == :kx
if lkx = self[:lagrangian_kx]
self[:lagrangian_kx_index] = list(:kx).key(lkx)
end
if lkxi = self[:lagrangian_kx_index] ||= self[:lkx_index]
self[:kx_index] = run.eulerian_kx_index(kx_index: lkxi, ky_index: self[:ky_index], t_index: self[:t_index])
end
end
self[:ky_index] = 1 if name == :ky and run.grid_option == "single"
self[:kx_index] = 1 if name == :kx and run.grid_option == "single"
self[name + :_index] ||= run.list(name).key(self[name]) || (raise ("#{name} not specified"))
end
end
|