Skip to content

Using a class method in a NonlinearIOSystem #629

Description

@dkunz49

I am trying to use a class method in a NonlinearIOSystem. To test, I adapted the predator-prey example such that the predprey_rhs function becomes a method in the new predprey class. Then, I create an instance of the predprey class (pp), and create the NonlinearIOSystem using the pp.predprey_rhs method. All good to that point. When I try to calculate the open-loop response with control.input_output_response, I get "TypeError: dynamics() takes 4 positional arguments but 5 were given". The method predprey_rhs has the self argument in its definition, so that shouldn't be a problem. Anyone have any ideas?

Activity

  1. dkunz49 commented on Jun 10, 2021

    @dkunz49
    Author

    I figured it out. Apparently, "params" is required as an argument for the predprey_rhs method. Previously, I defined the parameters in init, and didn't include "params" as a predprey_rhs method. Once I added it back in, even though is wasn't used, the error went away. I still don't understand why it threw the TypeError, but no matter.

  2. locked and limited conversation to collaborators on Jun 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions