function solu2 = Prolongate_Space(mesh,solu1,Base1,Base2)

%-----Prolongate the space from Base1 to Base2 on the same mesh------------
%     MESH: the Finite element mesh
%     SOLU1; The initial finite element solution
%     BASE1: the initial finite element base function
%     BASE2: the targeted finite element basis function
%  OUTPUT: solu2, the objective solution corresponding to the new base
%  function BASE2
%  HEHU XIE, 2010--12--24---


%----------compute the freedom degree vector-------------------------------
[Free_deg31,Dim1]=DOF_Mangement(mesh,Base1.DOF_3);
[Free_deg32,Dim2]=DOF_Mangement(mesh,Base2.DOF_3);

M_3 = Base1.b_3(Base2.nodal_3);
%----get the number of triangles-------------------------------------------
Nr_elem = size(mesh.elem,1);
solu2 = sparse(Dim2,1);
if Nr_elem > 0
    solu2(Free_deg32) = solu1(Free_deg31)*M_3';
end