Moved the logic of initialization of the grid, initial conditions and so on into a discretization class. The time-steeping now operates on top of that class. There are several advantages to the refactor:
all testing is now done though the new discretization manager and time-stepper, i.e., one code path so it is tested, unlike the old complex main logic
now we have a clear place to put additional data-structures, i.e., the moments and kron operators
cleaned the old circular dependence in the headers due to the moments hacking
this facilitates more direct interactions between the components of the discretization, gird, pde, matrices, while at the same time the data is encapsulated from accidental/unnecessary user meddling
updated some of the associated documentation
allowed for the code to run in silent mode, which makes it easier to debug compared to silencing cout
Moved the logic of initialization of the grid, initial conditions and so on into a discretization class. The time-steeping now operates on top of that class. There are several advantages to the refactor: