5 addpath([pwd,filesep,
'..',filesep,
'base'])
6 addpath([pwd,filesep,'..',filesep,'sage'])
7 addpath([pwd,filesep,'..',filesep,'Opt'])
8 addpath([pwd,filesep,'..',filesep,'ElemMat'])
13 disp('-----------------------------------------')
14 disp(' Test 1: Matrices errors and CPU times ')
15 disp('-----------------------------------------')
22 Test1.error(1)=norm(Mbase-MOptV0,Inf);
23 Test1.name{1}=
'StiffAssembling3DP1OptV0';
24 fprintf(
' Error P1base vs OptV0 : %e\n',Test1.error(1))
28 Test1.error(2)=norm(Mbase-MOptV1,Inf);
29 Test1.name{2}=
'StiffAssembling3DP1OptV1';
30 fprintf(
' Error P1base vs OptV1 : %e\n',Test1.error(2))
34 Test1.error(3)=norm(Mbase-MOptV2,Inf);
35 Test1.name{3}=
'StiffAssembling3DP1OptV2';
36 fprintf(
' Error P1base vs OptV2 : %e\n',Test1.error(3))
38 fprintf(
' CPU times base (ref) : %3.4f (s)\n',
T(1))
39 fprintf(
' CPU times OptV0 : %3.4f (s) - Speed Up X%3.3f\n',
T(2),
T(1)/
T(2))
40 fprintf(
' CPU times OptV1 : %3.4f (s) - Speed Up X%3.3f\n',
T(3),
T(1)/
T(3))
41 fprintf(
' CPU times OptV2 : %3.4f (s) - Speed Up X%3.3f\n',
T(4),
T(1)/
T(4))
45 disp(
'-----------------------------------------------------------')
46 disp(' Test 2: Validations by integration on [0,1]x[0,1]x[0,1] ')
47 disp('-----------------------------------------------------------')
51 U=Test(kk).u(Th.q(1,:),Th.q(2,:),Th.q(3,:));
52 V=Test(kk).v(Th.q(1,:),Th.q(2,:),Th.q(3,:));
53 Test(kk).error=abs(Test(kk).Stiff-U*
M*V');
54 fprintf(' function %d : u(x,y,z)=%s, v(x,y,z)=%s,\n -> Mass error=%e\n',kk,Test(kk).cu,Test(kk).cv,Test(kk).error);
59 disp('--------------------------------')
60 disp(' Test 3: Validations by order ')
61 disp('--------------------------------')
72 fprintf('(%d/%d) Matrix size : %d\n',
k,
N,Th.nq);
73 h(k)=GetMaxLengthEdges(Th.q,Th.me);
77 U=u(Th.q(1,:),Th.q(2,:),Th.q(3,:));
78 V=v(Th.q(1,:),Th.q(2,:),Th.q(3,:));
79 Error(k)=abs(ExSol-U*
M*V');
81 fprintf(' Error : %e\n',Error(k));
84 loglog(h,Error,'+-r',h,h*1.1*Error(1)/h(1),'-sm',h,1.1*Error(1)*(h/h(1)).^2,'-db')
85 legend('Error','O(h)','O(h^2)')
87 title('Test 3 : Stiff Matrix')
92 function checkTest1(Test)
93 I=find(Test.error>1e-14);
95 disp('------------------------')
96 disp(' Test 1 (results): OK')
97 disp('------------------------')
99 disp('----------------------------')
100 disp(' Test 1 (results): FAILED')
101 disp('----------------------------')
105 function checkTest2(Test)
109 if ((Test(k).degree<=1)&&(Test(k).degree>=0))
110 if (Test(k).error>1e-14)
116 disp('------------------------')
117 disp(' Test 2 (results): OK')
118 disp('------------------------')
120 disp('----------------------------')
121 disp(' Test 2 (results): FAILED')
122 disp('----------------------------')
126 function checkTest3(h,error)
128 P=polyfit(log(h),log(error),1);
130 disp('------------------------')
131 disp(' Test 3 (results): OK')
132 fprintf(' -> found numerical order %f. Must be 2\n',P(1))
133 disp('------------------------')
135 disp('----------------------------')
136 disp(' Test 3 (results): FAILED')
137 fprintf(' -> found numerical order %f. Must be 2\n',P(1))
138 disp('----------------------------')