Source code for openmdao.test_suite.components.ae_tests

"""
Some classes that are used to test Analysis Errors on multiple processes.
"""

import openmdao.api as om
from openmdao.core.driver import Driver


[docs]class AEComp(om.ExplicitComponent):
[docs] def setup(self): self.add_input('x', val=0.0) self.add_output('y', val=0.0)
[docs] def compute(self, inputs, outputs): """ This will error if x is more than 2. """ x = inputs['x'] if x > 2.0: raise om.AnalysisError('Try again.') outputs['y'] = x*x + 2.0
[docs]class AEDriver(Driver): """ Handle an Analysis Error from below. """
[docs] def run(self): """ Just handle it and return an error state. """ try: self._problem().model.run_solve_nonlinear() except om.AnalysisError: return True return False