require_relative 'reactor'

module Ilm
  module Chemical
    module Reactors
      # This class is for cst reactors
      class ContinuousStirredTankReactor < Reactor
        def initialize(args = {})
          super args
        end

        def find_volume
          # accumulation is zero
          compound_formula = @reaction.rate_equation.split(' ').first.split('r').last
          ci = @input[:substance].species[compound_formula]
          co = @output[:substance].species[compound_formula]
          input = @input[:quantity] * ci[:weight_percent] /
                  (100 * ci[:compound].molar_mass)
          output = @output[:quantity] * co[:weight_percent] /
                   (100 * co[:compound].molar_mass)
          x = (input - output) / input
        end

        def self.humanized_name
          'Continuous stirred-tank reactor'
        end
      end
    end
  end
end