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



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
# File 'lib/gs2crmod/gs2.rb', line 1324

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

#setup_time_windowObject



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

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