ORNL / ORNL/GridKit

Pass a minimum time step argument to `tagDifferentiable`

Open
#441 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
C++
Stars
27
Forks
11
Avg merge
3d 8h
Merged PRs (30d)
23

Description

Summary

Pass a minimum time step argument to tagDifferentiable so models can conditionally set algebraic or differential based on their parameters and minimum promised time step

Rationale

If we ever allow a minimum time step to be set for IDA or use a fixed-time-step mode, we could run into stability issues with some models.

Description

If we ever allow the user to set a minimum or fixed time step, we want to be able to change a variable from differential to algebraic as Power World does for many models.

Related to #332

See #439 for the model that Power world conditionally sets algebraic based on the parameter and min time step

Additional information

PowerWorld does this, and it's common for many models with time constants

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the C++ declaration and call sites for tagDifferentiable. Read related issues #332 and #439 for the expected minimum-time-step behavior and model context. Done means the API can receive the minimum time step needed for models to choose between algebraic and differential behavior, with relevant tests or model examples updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.