Multiple Monitor Sinks + Remove monitor field from case
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 27
- Forks
- 11
- Avg merge
- 3d 8h
- Merged PRs (30d)
- 23
Description
Summary
Ability to make a monitor in the *.solver.json and collect component monitor data based on some regular expression
Rationale
Having the monitors defined in the *.case.json is not intuitive and really difficult to use. Having a wildcard/regex in the .solver.json and beign able to colelct output into different files is what we need.
Description
{
"system_model_file": "../../../../cases/PhasorDynamics/wecc.case.json",
"dt_monitor": 0.004166666666666667,
"tmax": 10.0,
"events": [
{ "time": 1.0, "type": "fault_on", "element_id": 0 },
{ "time": 1.15, "type": "fault_off", "element_id": 0 }
],
"monitors": [
{
"file_name": "wecc.omega.csv",
"include": "Genrou_*_omega",
"reference_file": "wecc.omega.ref.csv",
"error_type": "relative",
"error_tolerance": 1e-2,
"abs_err_threshold": 1e-6
},
{
"file_name": "wecc.vmag.csv",
"include": "Bus_*_Vm",
"reference_file": "wecc.vmag.ref.csv",
"error_type": "relative",
"error_tolerance": 1e-2,
"abs_err_threshold": 1e-6
},
{
"file_name": "wecc.p.csv",
"include": "Genrou_*_p",
"reference_file": "wecc.p.ref.csv",
"error_type": "relative",
"error_tolerance": 1e-2,
"abs_err_threshold": 1e-6
},
{
"file_name": "wecc.q.csv",
"include": "Genrou_*_q",
"reference_file": "wecc.q.ref.csv",
"error_type": "relative",
"error_tolerance": 1e-2,
"abs_err_threshold": 1e-6
}
]
}
Additional information
@PhilipFackler I liked your vision for this
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 by locating the code that reads monitors from *.case.json and the solver configuration parser. Use the example monitors array in the issue to trace how component data is selected and written to separate files, then verify that the case-level monitor field is no longer required.
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