HARK
HARK copied to clipboard
standalone model configuration file with model, approximation, solution, and simulation parameters
The goal of this PR is to implement a working example of a HARK configuration file, in Python, as per #857. (Note the ticket originates from 2020).
Such a configuration should include information:
- about "true" model dynamics (stages, blocks,etc.), in
- approximations adopted for computational reasons
- instructions about how to solve the model
- parameters for simulating the model (with the given solution)
While this is functionality that's similar to the HARK 0.x models, this PR aims to implement model configuration subject to several constraints:
- There's a single source of truth for any information about the model's structural equations
- The configuration is a data structure, not a program, in the sense that it relies only on basic data types without cross-referencing between sections. This requirement is there because the next step after this PR is to implement a parser that will transform a YAML file into this kind of configuration object.
- As much as possible, it actually operates with other not-model-specific components in HARK.
This work is informed by work in late 2023 on the HARK 2.0 model specification language.
Some tricky parts remaining to implement include:
- Constructing shocks using mathematical expressions for input parameters from configuration objects
- Settling on a syntax for aspects of the configuration which are really more like 'workflows' than like model details
- [ ] Tests for new functionality/models or Tests to reproduce the bug-fix in code.
- [ ] Updated documentation of features that add new functionality.
- [ ] Update CHANGELOG.md with major/minor changes.