diff --git a/src/Solvers/petsc_solver_AMG_report.hpp b/src/Solvers/petsc_solver_AMG_report.hpp
index 34d3d90c1a99b68af2e7512c84c56bd55ed2b236..c74b5766e2dabd2dc05ba4f3bded30c5b3c8f37f 100644
--- a/src/Solvers/petsc_solver_AMG_report.hpp
+++ b/src/Solvers/petsc_solver_AMG_report.hpp
@@ -95,6 +95,7 @@ class petsc_AMG_report
 		Vcluster & v_cl = create_vcluster();
 		v_cl.max(time1);
 		v_cl.max(time2);
+		v_cl.execute();
 
 		// Save the result
 		AMG_time_err_coars tmp;
diff --git a/src/Vector/Vector_util.hpp b/src/Vector/Vector_util.hpp
index 87715957fe7b3e0fb4de8dc18aa327ecdbc4aa6a..75b014edcf23b55ca67066ae1f9488efa36034f9 100644
--- a/src/Vector/Vector_util.hpp
+++ b/src/Vector/Vector_util.hpp
@@ -23,6 +23,18 @@
 template<typename copy_type, typename T, typename Ev, typename Eqs_sys, int sa>
 struct copy_ele_sca_array
 {
+	/*! \brief Constructor
+	 *
+	 * It define the copy parameters.
+	 *
+	 * \param key destination position
+	 * \param grid_dst grid destination
+	 * \param x Source vector
+	 * \param lin_id source element inside the vector
+	 * \param gs_size grid size
+	 * \param base_id processor id start
+	 *
+	 */
 	template<typename Grid> inline static void copy(Grid & grid_dst, const grid_dist_key_dx<Eqs_sys::dims> & key, const Ev & x,size_t lin_id, size_t base_id, size_t gs_size)
 	{
 		grid_dst.template get<T::value>(key) = x(lin_id * Eqs_sys::nvar + base_id);
@@ -41,6 +53,18 @@ struct copy_ele_sca_array
 template<typename copy_type, typename T, typename Ev, typename Eqs_sys>
 struct copy_ele_sca_array<copy_type,T,Ev,Eqs_sys,1>
 {
+	/*! \brief Constructor
+	 *
+	 * It define the copy parameters.
+	 *
+	 * \param key destination position
+	 * \param grid_dst grid destination
+	 * \param x Source vector
+	 * \param lin_id source element inside the vector
+	 * \param gs_size grid size
+	 * \param base_id processor id start
+	 *
+	 */
 	template<typename Grid> inline static void copy(Grid & grid_dst, const grid_dist_key_dx<Eqs_sys::dims> & key, const Ev & x,size_t lin_id, size_t base_id, size_t gs_size)
 	{
 		for (size_t i = 0 ; i < std::extent<copy_type>::value ; i++)
@@ -84,13 +108,15 @@ struct copy_ele
 	//! source vector
 	const Ev & x;
 
-	/*! \brief constructor
+	/*! \brief Constructor
 	 *
 	 * It define the copy parameters.
 	 *
 	 * \param key destination position
 	 * \param grid_dst grid destination
-	 * \param v Source vector
+	 * \param x Source vector
+	 * \param lin_id source element inside the vector
+	 * \param gs_size grid size
 	 *
 	 */
 	inline copy_ele(const grid_dist_key_dx<Eqs_sys::dims> & key, S & grid_dst, const Ev & x, size_t lin_id, size_t gs_size)
@@ -109,7 +135,11 @@ struct copy_ele
 	{std::cerr << "Error: " <<__FILE__ << ":" << __LINE__ << " Passing a temporal object";};
 #endif
 
-	//! It call the copy function for each property
+	/*! \brief It call the copy function for each property
+	 *
+	 * \param t property id
+	 *
+	 */
 	template<typename T>
 	inline void operator()(T& t)
 	{