diff --git a/configure.ac b/configure.ac
index b57f9f2e8a9863af26e2c991cfdc5de3bf8fb0a0..552b31f3158221301e71bd4c772bc357fa688f8d 100755
--- a/configure.ac
+++ b/configure.ac
@@ -136,8 +136,8 @@ AX_LIB_PETSC()
 AC_LANG_PUSH([C++])
 
 AC_CHECK_HEADER(quadmath.h, , [])
-AC_CHECK_LIB(quadmath, sinq, [ AC_CHECK_HEADER( quadmath.h ,[AC_DEFINE(HAVE_LIBQUADMATH,[],[Have quad math lib])
-				LIBQUADMATH=" -lquadmath "],[])
+AC_CHECK_LIB(quadmath, sinq, [  AC_DEFINE(HAVE_LIBQUADMATH,[],[Have quad math lib])
+				LIBQUADMATH=" -lquadmath "
 				], [])
 
 AC_LANG_POP([C++])
diff --git a/src/FiniteDifference/eq_unit_test_3d.hpp b/src/FiniteDifference/eq_unit_test_3d.hpp
index 83ec81d88f61477d81b41e7221efd270b42b1e86..aa11f5bae64970078c59f87be26a5e16e02940c8 100644
--- a/src/FiniteDifference/eq_unit_test_3d.hpp
+++ b/src/FiniteDifference/eq_unit_test_3d.hpp
@@ -22,57 +22,56 @@
 
 BOOST_AUTO_TEST_SUITE( eq_test_suite_3d )
 
-//!
-
+//! Specify the general caratteristic of system to solve
 struct lid_nn_3d_eigen
 {
-	// dimensionaly of the equation ( 3D problem ...)
+	//! dimensionaly of the equation ( 3D problem ...)
 	static const unsigned int dims = 3;
-	// number of fields in the system
+	//! number of fields in the system
 	static const unsigned int nvar = 4;
 
-	// boundary at X and Y
+	//! boundary at X and Y
 	static const bool boundary[];
 
-	// type of space float, double, ...
+	//! type of space float, double, ...
 	typedef float stype;
 
-	// type of base grid
+	//! type of base grid
 	typedef grid_dist_id<3,float,aggregate<float[3],float>,CartDecomposition<3,float>> b_grid;
 
-	// type of SparseMatrix for the linear solver
+	//! type of SparseMatrix for the linear solver
 	typedef SparseMatrix<double,int> SparseMatrix_type;
 
-	// type of Vector for the linear solver
+	//! type of Vector for the linear solver
 	typedef Vector<double> Vector_type;
 
-	// Define the underline grid is staggered
+	//! Define the underline grid is staggered
 	static const int grid_type = STAGGERED_GRID;
 };
 
 struct lid_nn_3d_petsc
 {
-	// dimensionaly of the equation ( 3D problem ...)
+	//! dimensionaly of the equation ( 3D problem ...)
 	static const unsigned int dims = 3;
-	// number of fields in the system
+	//! number of fields in the system
 	static const unsigned int nvar = 4;
 
-	// boundary at X and Y
+	//! boundary at X and Y
 	static const bool boundary[];
 
-	// type of space float, double, ...
+	//! type of space float, double, ...
 	typedef float stype;
 
-	// type of base grid
+	//! type of base grid
 	typedef grid_dist_id<3,float,aggregate<float[3],float>,CartDecomposition<3,float>> b_grid;
 
-	// type of SparseMatrix for the linear solver
+	//! type of SparseMatrix for the linear solver
 	typedef SparseMatrix<double,int,PETSC_BASE> SparseMatrix_type;
 
-	// type of Vector for the linear solver
+	//! type of Vector for the linear solver
 	typedef Vector<double,PETSC_BASE> Vector_type;
 
-	// Define the underline grid is staggered
+	//! Define the underline grid is staggered
 	static const int grid_type = STAGGERED_GRID;
 };
 
diff --git a/src/Matrix/SparseMatrix_petsc.hpp b/src/Matrix/SparseMatrix_petsc.hpp
index d129624d286ba4340ffa62f3cfc1a98c23416889..78d352d1ab1d7d4a3921231173b26324edec3724 100644
--- a/src/Matrix/SparseMatrix_petsc.hpp
+++ b/src/Matrix/SparseMatrix_petsc.hpp
@@ -24,22 +24,42 @@
 template<typename T>
 class triplet<T,PETSC_BASE>
 {
+	//! Row of the sparse matrix
 	PetscInt row_;
+
+	//! Colum of the sparse matrix
 	PetscInt col_;
+
+	//! Value of the Matrix
 	PetscScalar val_;
 
 public:
 
+	/*! \brief Return the row of the triplet
+	 *
+	 * \return the row index
+	 *
+	 */
 	PetscInt & row()
 	{
 		return row_;
 	}
 
+	/*! \brief Return the colum of the triplet
+	 *
+	 * \return the colum index
+	 *
+	 */
 	PetscInt & col()
 	{
 		return col_;
 	}
 
+	/*! \brief Return the value of the triplet
+	 *
+	 * \return the value
+	 *
+	 */
 	PetscScalar & value()
 	{
 		return val_;
diff --git a/src/Operators/Vector/vector_dist_operators.hpp b/src/Operators/Vector/vector_dist_operators.hpp
index 7adb79008e4f184796bd44a2120bdc3ffc018b1a..21ec3c8271f2e5dfb8f8f8f60df7162a18523715 100644
--- a/src/Operators/Vector/vector_dist_operators.hpp
+++ b/src/Operators/Vector/vector_dist_operators.hpp
@@ -499,12 +499,15 @@ public:
 template<unsigned int prp>
 class vector_dist_expression<prp,float>
 {
+	//! constant value
 	float d;
 
 public:
 
+	//! type of object the structure return then evaluated
 	typedef float vtype;
 
+	//! constrictir from constant value
 	inline vector_dist_expression(const float & d)
 	:d(d)
 	{}
@@ -519,7 +522,9 @@ public:
 
 	/*! \brief Evaluate the expression
 	 *
-	 * It just return the velue set in the constructor
+	 * It just return the value set in the constructor
+	 *
+	 * \return the constant value set in the constructor
 	 *
 	 */
 	inline float value(const vect_dist_key_dx & k) const
diff --git a/src/Operators/Vector/vector_dist_operators_functions.hpp b/src/Operators/Vector/vector_dist_operators_functions.hpp
index c0d9dfb3fd9079be6597c13515ca397619af21c9..ff7308e14a8ded59da50a283a9d731fb18e8edd2 100644
--- a/src/Operators/Vector/vector_dist_operators_functions.hpp
+++ b/src/Operators/Vector/vector_dist_operators_functions.hpp
@@ -49,14 +49,6 @@ fun_name(const vector_dist_expression_op<exp1,exp2_,op1> & va)\
 	return exp_sum;\
 }\
 \
-template<typename exp1, typename exp2_, unsigned int op1>\
-inline vector_dist_expression_op<vector_dist_expression<0,double>,void,OP_ID>\
-fun_name(double d)\
-{\
-	vector_dist_expression_op<vector_dist_expression<0,double>,void,OP_ID> exp_sum( (vector_dist_expression<0,double>(d)) );\
-\
-	return exp_sum;\
-}\
 \
 template<unsigned int prp1, typename v1>\
 inline vector_dist_expression_op<vector_dist_expression<prp1,v1>,void,OP_ID>\