Co-simulation should manually drive solver steps
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 27
- Forks
- 11
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 23
Description
Summary
Manually take each simulation step in co-simulation app(s) rather than using the step callback.
Rationale
In the initial implementation of a co-simulation example (#537), the client side uses the step_callback in the interface to Ida::runSimulation to trigger network exchanges. This is already a problem since we want to remove the step callback parameter altogether. Also, we want to manually drive the solver steps so that we can synchronize time step size between the two instances in the co-simulation.
Description
Don't call runSimulation. Instead, drive the simulation by manually taking each step on both client and server side between data exchanges.
Additional information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the co-simulation example from #537 and inspect how the client and server use Ida::runSimulation and its step_callback to trigger network exchanges. The work is complete when both sides manually drive each solver step between data exchanges without calling runSimulation or relying on step_callback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- distributed-systems
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100