Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System composition clarity #43

Open
GJHSimmons opened this issue May 31, 2024 · 0 comments
Open

System composition clarity #43

GJHSimmons opened this issue May 31, 2024 · 0 comments
Assignees
Labels
design Discussions around design decisions enhancement New feature or request future features Description of planned functionality

Comments

@GJHSimmons
Copy link
Collaborator

A dynamic complex system model is described by:

  • The differential equations
  • The functions
  • The parameters

Differential equations and functions are described by VariablePortedObject and FunctionalPortedObject classes, respectively. The core component of FunctionalPortedObject classes are ParameterAssignment classes, which store the correspondence between a SymbolContainer and sympy.Expression object.

The class ParameterAssignment is also used to store:

  • Assignments produced by CompositePortedObject classes
  • Default parameter assignments produced by InputPort classes

It is proposed to subclass ParameterAssignment to differentiate between those assignments coming from FunctionalPortedObject classes, and the other assignments listed above. This will aid clarity in being able to provide the model description described above.

Further subclassing is proposed to differentiate between different parameter assignments, differentiating between those produced by CompositePortedObject classes, and moreover the default parameter assignments produced by InputPort classes of:

  • children objects with default values: 'exposable' parameters which are coded into a model, but can be made available to a user
  • the compiled object with default values: 'optional' parameters which are naturally changeable to alter the behaviour of the system
  • the compiled object with no default value: 'required' parameters which must be specified before a system can be simulated, but which on inspection represent the dependence of a compiled object on external sources
@GJHSimmons GJHSimmons added enhancement New feature or request future features Description of planned functionality design Discussions around design decisions labels May 31, 2024
@GJHSimmons GJHSimmons self-assigned this Jun 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design Discussions around design decisions enhancement New feature or request future features Description of planned functionality
Projects
None yet
Development

No branches or pull requests

1 participant