Added a proposal for closing the loop. Created two functions for simulation, one is a closed loop, the other is an open loop simulation.
Merge branch 'master' of github.com:faitdivers/pyao into closedMainLoop
Implemented closed loop simulation, and modified setup_params to return only one variable. This helps to make shorter lines, and reduces the number of variables to be assigned in one function call. IMHO, this improves code readability.
Merge branch 'master' of github.com:faitdivers/pyao into closedMainLoop
Added the basics for a PID controller, with no I implemented yet, as initially we are only using P and D.
Added basic unit-testing to the PID controller.
Added test for the case of array input / output.
Fixed the derivative part, after the unit-tests failed.
Update wfr_doc.tex
Added File SingleLens.py to show analytical and numerical solutions graphically in the case of only a single lens.  First Draft of WFS, for a single aperture, no plots.
Uses parameters from the paramsSensor dictionary in main
Merge pull request #19 from faitdivers/closedMainLoop

Closed main loop
Merge branch 'master' of https://github.com/faitdivers/pyao into WFS_OneLens

Conflicts:
	src/main.py
document now compiles, removed a type
construction of the phase_id vector
Mapping from Noll index i to Zernike indices (u,v)

The file contains the u,v = zernikeIndex(i) function that maps from the
convenient Noll indexing to the Zernike indices. So far I was not able
to detect errors in the mapping up to i = 200 or so. I'm confident it'll
work just fine for larger values as it is not using an approximation.
Updated zernike mode generation

Now zernike(...) takes both 3 or 4 arguments. The first one:
zernike(rho,theta,i) with i the Noll index. The second form:
zernike(rho,theta,u,v) allows specification of the index manually.
Test the WFG features

Now also test Noll's indices generation and print them in the console.
Additionally, the new 3 argument syntax of zernike(...) is used.
File with support functions and methods

These function, used to be part of the zernike.py file, split for
readability. Moreover, others may benefit from it. Added a circular
aperture function and a function to create a square spatial grid.
Added a ZernikeWave class

This class allows, to add/remove/adjust modes to your liking. When you
are all done, hit createWavefront(...) and the final result is ready.
For ease, you can quickly plot the result of the modes or the combined
wavefront from the class.  Finally, the class also allows for
decomposition a wavefront in zernike modes, with
decomposeWavefront(...).