class Gtengine::Simple::PikOptimizer

Attributes

air[RW]
cycles[RW]
end_pik[RW]
optimum[RW]
start_pik[RW]
step[RW]
t_g[RW]

Public Class Methods

new(air, start_pik, end_pik, t_g, step = 1) click to toggle source
# File lib/gtengine/simple/pik_optimizer.rb, line 4
def initialize(air, start_pik, end_pik, t_g, step = 1)
  @air, @start_pik, @end_pik, @t_g, @step = air, start_pik, end_pik, t_g, step
  @cycles = []
  optimize
end

Public Instance Methods

calc_result(pik) click to toggle source
# File lib/gtengine/simple/pik_optimizer.rb, line 16
def calc_result(pik)
  c = Gtengine::Simple::Cycle.new(air, pik, t_g)
  @cycles << c if c.burner.q_ks
rescue
  false
end
info() click to toggle source
# File lib/gtengine/simple/pik_optimizer.rb, line 27
def info
  cycles.each { |c| c.info }
  puts "Optimal pi_k: #{optimal.pi_k}, q_ks: #{optimal.q_ks}"
end
optimal() click to toggle source
# File lib/gtengine/simple/pik_optimizer.rb, line 23
def optimal
  cycles.sort { |a, b| a.burner.q_ks <=> b.burner.q_ks }.first
end
optimize() click to toggle source
# File lib/gtengine/simple/pik_optimizer.rb, line 10
def optimize
  Range.new(start_pik, end_pik).step(step).each do |pik|
    calc_result(pik)
  end
end