1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
|
# File 'lib/gs2crmod/gs2.rb', line 1145
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
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
|