add source.h to handle different kind of source

currently has cos wave and gaussian wave
however, if set Rs<1 might cause unstable