rbmatlab 0.10.01
test/test_ldgfunc.m
00001 function OK = test_ldgfunc
00002 % function testing ldgfunc abilities
00003 %
00004 % currently testing:
00005 %   l2projection of vectorial function
00006 %   extraction of scalar component
00007 %   local evaluation of vectorial function
00008 %   ldg_l2error
00009 
00010 % Bernard Haasdonk 18.1.2010
00011 
00012 OK = 1;
00013 
00014 % initialize grid
00015 grid = triagrid();
00016 
00017 %params.nelements = grid.nelements; 
00018 params.pdeg = 1;
00019 params.dimrange = 2; % vectorial function
00020 %params.ndofs = ldg_ndofs(params);
00021 %params.ndofs_per_element = ldg_ndofs_per_element(params);
00022 df_info = ldginfo(params,grid);
00023 
00024 % function constant [1.0, 1.0]
00025 f = @(einds,loc,grid,params) ones(length(einds),1)*[1.0, 1.0];
00026 
00027 %f = @(einds,loc,grid,params) f_global(...
00028 %    local2global(grid,einds,loc,params),params); 
00029 
00030 qdeg = 4;
00031 df = ldgdiscfunc(df_info);
00032 df.dofs = ldg_l2project(f,qdeg,df_info);
00033 
00034 df_scalar = scalar_component(df,1);
00035 %[dofs1, params1 ] = ldg_scalar_component(dofs,1,params);
00036 %disp('local evaluation should be constant [1 1]');
00037 
00038 res = df(1:10,[0,0]);
00039 if max(max(abs(res-ones(10,df.dimrange))))>1e-6
00040   disp('test_ldgfunc: local evaluation result of projected dofs not [1,1]!!');
00041   OK = 0;
00042 end;
00043 
00044 res = df_scalar(1:10,[0,0]);
00045 if max(max(abs(res-ones(10,1))))>1e-6
00046   disp('test_ldgfunc: local evaluation of scalar component not 1!!');
00047   OK = 0;
00048 end;
00049 
00050 res = ldg_l2error(df,f,qdeg);
00051 if abs(res)>1e-6
00052   disp('test_ldgfunc: ldg_l2error not 0!!');
00053   OK = 0;
00054 end;
00055 
00056 %disp('plot should be constant 1');
00057 %plot(df_scalar,[]);
All Classes Namespaces Files Functions Variables