title: How can I add an integer variable to an openmdao driver?
body: <p>I am confused by this openmdao error. Why is this being raised? Can I somehow tell openmdao that I don't have gradients and to use finite differences? Why is this raised for childWeight but not eta? </p>
  
  <p>I can get past this problem by initializing al my variables as floating point (eg. <code>root.add('childWeight', IndepVarComp('x',100))</code> -> <code>root.add('childWeight', IndepVarComp('x',100.0))</code>), but I would like to understand why this error was raised. </p>
  
  <pre><code>from openmdao.api import Component, Group, Problem, ScipyOptimizer, IndepVarComp
  
  class gym(Component):
      def __init__(self):
          super(gym, self).__init__()
          self.add_param('eta', 0.01)
          self.add_param('childWeight', 240)
  
          self.add_output('acc', 1)
  
      def solve_nonlinear(self, params, unknowns, resids):
          &lt;...... parameters are used to produce objective "acc" ...&gt;
          unknowns["acc"] = ....
  
  top = Problem()
  root = top.root = Group()
  root.add('gym', gym())
  top.driver = ScipyOptimizer()
  top.driver.options['optimizer'] = 'BFGS'
  
  root.add('eta',IndepVarComp('x', 0.01))
  root.add('childWeight', IndepVarComp('x',100))
  
  root.connect('eta.x', 'gym.eta')
  root.connect('childWeight.x', 'gym.childWeight')
  
  top.driver.add_desvar('eta.x', 0, 1.0)
  top.driver.add_desvar('childWeight.x', 0, 1000)
  
  top.driver.add_objective('gym.acc')
  top.setup()
  top.run()
  </code></pre>
  
  <p>raises the error</p>
  
  <pre><code>  File "script.py", line 98, in &lt;module&gt;
      top.setup()
    File "/usr/local/lib/python2.7/site-packages/openmdao/core/problem.py", line 694, in setup
      self.driver._setup()
    File "/usr/local/lib/python2.7/site-packages/openmdao/drivers/scipy_optimizer.py", line 91, in _setup
      super(ScipyOptimizer, self)._setup()
    File "/usr/local/lib/python2.7/site-packages/openmdao/core/driver.py", line 115, in _setup
      (item_name, name, oname))
  RuntimeError: Parameter 'childWeight.x' is a 'pass_by_obj' variable and can't be used with a gradient based driver of type 'BFGS'.
  </code></pre>