def solve_nonlinear(self, params, unknowns, resids):

        z1 = params['z'][0]
        z2 = params['z'][1]
        y1 = params['y1']

        # Note: this may cause some issues. However, y1 is constrained to be
        # above 3.16, so lets just let it converge, and the optimizer will
        # throw it out
        if y1.real < 0.0:
            y1 *= -1

        unknowns['y2'] = y1**.5 + z1 + z2

        self.execution_count += 1
Evaluates the equation
dataset/ETHPy150Open OpenMDAO/OpenMDAO/openmdao/test/sellar.py/SellarDis2.solve_nonlinear