added const ref to aviod copy
fixed some warning and added const to aviod copy
added geometricalderivative class.
added namespace