## Refactor model creation code

Currently the model generation code (for both CDMMI and dIMMI) takes in an entire ReconSystem object and parses the inputs in order to create the required timepoint array and xdcr coordinate array.

Adding preprocessing code to create the coordinate arrays outside of the model generation code would make it a lot easier to test, in general, and would make it more mathematically robust, since the model itself would just take as input the coordinates of the input/output spaces and the model parameters (e.g. speed of sound).

Model call structure should then be something like:

X_coord = linspace(-FOV_X/2,FOV_X/2,N_x); Y_coord = linspace(-FOV_Y/2,FOV_Y/2,N_y); Input_Space_Coordinates = {X_coord,Y_coord}

T_coord = (1:Nt).*dt; R_coord = [XDCR_X(:),XDCR_Y(:)]; Output_Space_Coordinates = {T_coord,R_coord}

InitArgs = {'SpeedOfSound',1500,'N_DiscreteRays',512}; [ModelOutputs...] = makeModel(Input_Space_Coordinates,Output_Space_Coordinates,InitArgs)