Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/gs2crmod/gs2.rb

Instance Method Summary collapse

Instance Method Details

#convert_to_index(run, *names) ⇒ Object

puts self



1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
# File 'lib/gs2crmod/gs2.rb', line 1319

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


#     ep run
  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

    #ep 'name', name
    self[:ky_index] = 1 if name == :ky and run.grid_option == "single"
    self[:kx_index] = 1 if name == :kx and run.grid_option == "single"
#       ep run.list(name)
    self[name + :_index] ||= run.list(name).key(self[name]) || (raise ("#{name} not specified"))
  end

end

#setup_time_windowObject



1348
1349
1350
1351
# File 'lib/gs2crmod/gs2.rb', line 1348

def setup_time_window
  self[:t_index_window] ||= [self[:t_index],self[:t_index]] if self[:t_index]
  self[:begin_element], self[:end_element] = (self[:t_index_window] ? self[:t_index_window].map{|ind| ind - 1} : [0, -1])
end