rbmatlab 0.10.01
|
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,[]);