function Matrix = Init_Matrix(L_Mesh,R_Mesh,L_Base,R_Base,L_Diff,R_Diff,Discrete_Form,coord3,Aux_FEM)

%% Initialize the information for the matrix or right hand side term
% INPUT: L_Mesh: the mesh position in the meshs for the left side of the
%        discrete form.
%        R_Mesh: the mesh position in the meshs for the right side of the
%        discrete form
%        L_Base: the base for the anasatz space (in the left side of the discrete form)
%        R_Base: the base for the test space (in the right side of the discrete form)
%        L_Diff: the differential information for the anasatz space
%        R_Diff: the differential information for the test space
%        Discrete_Form: the discrete form for the matrix
%        coord3: the quadrature information
%        Aux_FEM: the auxiliarly fem function for the nonlinear term. It can
%        be a structure (only one fem space) or a cell (multi fem spaces)
% OUTPUT: Matrx: the information for the matrix or right hand side term
% Hehu Xie: 2017-08-24

Matrix = struct('L_Mesh',L_Mesh,'R_Mesh',R_Mesh,'L_Base',L_Base,'R_Base',R_Base,'L_Diff',L_Diff,'R_Diff',...
                R_Diff,'Discrete_Form',Discrete_Form,'Coord3',coord3);
Matrix.Aux_FEM = [];
if nargin >= 10
    if isstruct(Aux_FEM)
        Matrix.Aux_FEM = Aux_FEM;
    end
end