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



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
1348
1349
1350
# File 'lib/gs2crmod/gs2.rb', line 1322

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



1351
1352
1353
1354
# File 'lib/gs2crmod/gs2.rb', line 1351

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