Kory suggested that I use the Factory pattern for `std::unique_ptr<Model> is(new Ising(a, n_x_in * n_y_in));` as well as `Square a(n_x_in, n_y_in);`