Start with causality inference
This commit is contained in:
@@ -56,8 +56,9 @@ Keep the root of `src/bedit` minimal. New UI modules should go into the relevant
|
||||
anchors may change without changing IDs.
|
||||
- Parameters belong to `Component` rather than a particular implementation kind,
|
||||
so graph and text components share stable-ID name/type/value records.
|
||||
- Port orientation is presented as one unified list in the UI, while the model
|
||||
indexes inputs and outputs separately for connection semantics.
|
||||
- Components store one ordered `ports` list. Each port's `orientation` field is
|
||||
authoritative (`input`, `output`, or power-only `indifferent`); connection and
|
||||
presentation code derives any directional groupings when needed.
|
||||
- Port types are registered in `core/port_types.py`. Only compatible types may be
|
||||
connected. Signal ports connect by type; power ports additionally require the
|
||||
same domain. Editable power domains and causalities live in
|
||||
@@ -72,9 +73,15 @@ Keep the root of `src/bedit` minimal. New UI modules should go into the relevant
|
||||
- Port removal or reorientation must be rejected when it would invalidate an
|
||||
existing connection.
|
||||
- Connections reference port IDs, never port names.
|
||||
- Connections store their port type and bond-graph causality explicitly.
|
||||
`core/bond_graph.py` owns causality inference; the simulation service invokes
|
||||
it before Modelica composition. The controller copies inferred values into the
|
||||
live model and refreshes the workspace before compile, export, or run.
|
||||
Causality values are `none`, `source`, `target`, `warn_source`, and `warn_target`.
|
||||
- Connection junctions are explicit typed graph objects. Splitting a connection
|
||||
creates one incoming and one outgoing segment; the junction can source further
|
||||
branches without overlapping full connection paths.
|
||||
branches without overlapping full connection paths. Power bond connections
|
||||
cannot contain junctions.
|
||||
- Graph interaction has separate Pointer and Connect modes. Port hints are only
|
||||
visible in Connect mode. Connecting two blocks opens the compatible port-pair
|
||||
chooser; explicit port clicks determine its default selection. Connections
|
||||
@@ -324,6 +331,7 @@ PYTHONPATH=src python3 -m bedit
|
||||
```
|
||||
|
||||
The installed GUI entry point is `bedit.gui.app:main`.
|
||||
The first non-flag launch argument is opened as the initial document.
|
||||
|
||||
## Completion checklist
|
||||
|
||||
|
||||
Reference in New Issue
Block a user