We follow NBER's heterogeneous-agent macro workshop to implement the Sequence Space Jacobian (SSJ) solution method in Julia, specifically to solve the one-asset HANK model.
Within the one asset hank folder, there are two folders (fiscal policy and monetary policy) that contain the files needed to solve the one-asset HANK model with fiscal and monetary policy, respectively.
Each of the fiscal policy and monetary policy folders contains the following files (descriptions of the listed structs and functions are within the files themselves):
- block.jl: code to initialize simple blocks
- struct Block
- function f_block
- function simple_solve_jacobian
- sim_steady_state: translation of sim_steady_state.py
- het.jl
- struct HH_Block
- function mk_grids_and_income
- function solve_ss
- function J_from_F
- function get_shocked_inputs
- function get_shocked_inputs_no_compound
- function unpack_backiter
- function step1_backward
- function ha_jacobian
- function policy_impulse
- function distribution_impulse
- function household_impulse
- function impulse_map
- graph.jl: code to initialize and utilize the DAG representation of the model
- struct DAG_Rep
- function make_in_map
- function make_adj_list
- function topsort
- function DAG_get_ss
- function one_step_jacobians
- function fw_acc
- function construct
- hank.jl: code to run the model
- tutorial.ipynb: notebook to give step-by-step instructions on how to use our package (mirrors Tutorials 1 and 2 of the workshop)
- running_example.ipynb: initial draft of tutorial.ipynb; may be helpful for debugging's sake