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



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

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



1345
1346
1347
1348
# File 'lib/gs2crmod/gs2.rb', line 1345

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