Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
xxt_test.m
Go to the documentation of this file.
1 function xxt_test
2 
3 Al0=[8 -1; -1 4];
4 Ac0=[-2 -2 -2; 0 -2 -1];
5 As0=[4 -1 0; -1 8 -1; 0 -1 4];
6 
7 Al1=[4];
8 Ac1=[-1 -1 -2];
9 As1=[4 -2 -1; -2 4 -1; -1 -1 4];
10 
11 Al2=[4];
12 Ac2=[-1 -2 -1];
13 As2=[4 -1 -2; -1 4 -1; -2 -1 4];
14 
15 A0=[Al0 Ac0; Ac0' As0];
16 A1=[Al1 Ac1; Ac1' As1];
17 A2=[Al2 Ac2; Ac2' As2];
18 
19 Il=eye(4); Is=eye(4);
20 gI=eye(8);
21 Rl0=Il([1 2],:);
22 Rl1=Il([3],:);
23 Rl2=Il([4],:);
24 Rs0=Is([6 7 8]-4,:);
25 Rs1=Is([5 6 7]-4,:);
26 Rs2=Is([5 7 8]-4,:);
27 Zls0 = zeros(length(Rl0(:,1)),length(Rs0(1,:)));
28 Zls1 = zeros(length(Rl1(:,1)),length(Rs1(1,:)));
29 Zls2 = zeros(length(Rl2(:,1)),length(Rs2(1,:)));
30 Zsl0 = zeros(length(Rs0(:,1)),length(Rl0(1,:)));
31 Zsl1 = zeros(length(Rs1(:,1)),length(Rl1(1,:)));
32 Zsl2 = zeros(length(Rs2(:,1)),length(Rl2(1,:)));
33 R0=[Rl0 Zls0; Zsl0 Rs0];
34 R1=[Rl1 Zls1; Zsl1 Rs1];
35 R2=[Rl2 Zls2; Zsl2 Rs2];
36 
37 A=R0'*A0*R0+R1'*A1*R1+R2'*A2*R2;
38 
39 All = bdiag(Al0,Al1,Al2);
40 Als = bdiag(Ac0,Ac1,Ac2);
41 Ass = bdiag(As0,As1,As2);
42 Qs = [Rs0;Rs1;Rs2];
43 ns = length(Qs(:,1));
44 
45 Q = bdiag(eye(4),Qs,[]);
46 
47 A=[All Als*Qs; Qs'*Als' Qs'*Ass*Qs];
48 
49 M = Q*(A\Q');
50 
51 S0 = As0-Ac0'*(Al0\Ac0);
52 S1 = As1-Ac1'*(Al1\Ac1);
53 S2 = As2-Ac2'*(Al2\Ac2);
54 
55 dS = bdiag(S0,S1,S2);
56 
57 em=[eye(4) -All\Als; 0*Als' eye(ns)];
58 norm(M-em*[inv(All) 0*Als; 0*Als' Qs*inv(Qs'*dS*Qs)*Qs']*em');
59 
60 Rf0=Is([6 7 8]-4,:);
61 Rf1=Is([5 6 7 8]-4,:);
62 Rf2=Is([5 6 7 8]-4,:);
63 Qf = [Rf0;Rf1;Rf2];
64 
65 X0 = zeros(length(Rs0(:,1)),length(Rf0(:,1)));
66 X1 = zeros(length(Rs1(:,1)),length(Rf1(:,1)));
67 X2 = zeros(length(Rs2(:,1)),length(Rf2(:,1)));
68 dX = bdiag(X0,X1,X2);
69 X = Qs'*dX*Qf;
70 
71 X0 = Rs0*X*Rf0';
72 
73 n = length(Qs(1,:)); Is = eye(n);
74 for i = [1:n]
75  ei = Is(:,i);
76  Ri = Is([1:i-1],:);
77  se = dS*Qs*ei
78  Xtse = dX'*se
79  QQtXtse = Qf*Ri'*Ri*Qf'*Xtse
80  Qy = Qs*ei - dX*QQtXtse
81  ytsy = Qy'*dS*Qy
82  Qx = Qy/sqrt(ytsy)
83  xv = inv(Qs'*Qs)*Qs'*Qx;
84  X(:,i)=xv
85  X0 = Rs0*X*Rf0'
86  X1 = Rs1*X*Rf1'
87  X2 = Rs2*X*Rf2'
88  dX = bdiag(X0,X1,X2);
89  pause
90 end
91 
92 norm(M-em*[inv(All) 0*Als; 0*Als' Qs*X*X'*Qs']*em')
93 norm(M-em*[inv(All) 0*Als; 0*Als' dX*Qf*Qf'*dX']*em')
94 
95 X
96 
97 inv(chol(A))
98 
99 Ai=inv(A);
100 
101 Ai([6 1 7 1 7 2 8],[6 3 1 7 5 2 8 4])'
102 Ai([6 3 7 5],[6 3 1 7 5 2 8 4])'
103 Ai([7 5 8 4],[6 3 1 7 5 2 8 4])'
104 
105 end
106 
107 function M=bdiag(A,B,C)
108  [ra ca]=size(A);
109  [rb cb]=size(B);
110  [rc cc]=size(C);
111  M = [ A zeros(ra,cb) zeros(ra,cc)
112  zeros(rb,ca) B zeros(rb,cc)
113  zeros(rc,ca) zeros(rc,cb) C ];
114 end
S0
Definition: xxt_test.m:51
dS
Definition: xxt_test.m:55
Rf2
Definition: xxt_test.m:62
X
Definition: xxt_test.m:69
X2
Definition: xxt_test.m:67
All
Definition: xxt_test.m:39
Zls2
Definition: xxt_test.m:29
n
Definition: xxt_test.m:73
Rs1
Definition: xxt_test.m:25
Rl0
Definition: xxt_test.m:21
Rl1
Definition: xxt_test.m:22
R2
Definition: xxt_test.m:35
Zsl2
Definition: xxt_test.m:32
uint B[NUM][SI]
Definition: sort_test.c:18
A0
Definition: xxt_test.m:15
A2
Definition: xxt_test.m:17
ns
Definition: xxt_test.m:43
Zsl0
Definition: xxt_test.m:30
gI
Definition: xxt_test.m:20
R0
Definition: xxt_test.m:33
Al2
Definition: xxt_test.m:11
em
Definition: xxt_test.m:57
Zls0
Definition: xxt_test.m:27
As0
Definition: xxt_test.m:5
R1
Definition: xxt_test.m:34
*Als eye(ns)]
Ac1
Definition: xxt_test.m:8
A
Definition: xxt_test.m:37
Rf0
Definition: xxt_test.m:60
Qs
Definition: xxt_test.m:42
A1
Definition: xxt_test.m:16
Il
Definition: xxt_test.m:19
Ac0
Definition: xxt_test.m:4
norm(M-em *[inv(All) 0 *Als;0 *Als'Qs *inv(Qs'*dS *Qs)*Qs']*em')
S1
Definition: xxt_test.m:52
S2
Definition: xxt_test.m:53
Rl2
Definition: xxt_test.m:23
Ri
Definition: xxt_test.m:76
Ass
Definition: xxt_test.m:41
Zls1
Definition: xxt_test.m:28
Qf
Definition: xxt_test.m:63
function xxt_test Al0
Definition: xxt_test.m:3
As1
Definition: xxt_test.m:9
Q
Definition: xxt_test.m:45
for i
Definition: xxt_test.m:74
Rs2
Definition: xxt_test.m:26
Ac2
Definition: xxt_test.m:12
Is
Definition: xxt_test.m:19
Rs0
Definition: xxt_test.m:24
Rf1
Definition: xxt_test.m:61
Al1
Definition: xxt_test.m:7
M
Definition: xxt_test.m:49
*Als dX *Qf *Qf *dX *em X inv(chol(A)) Ai
Zsl1
Definition: xxt_test.m:31
As2
Definition: xxt_test.m:13
se
Definition: xxt_test.m:77
X0
Definition: xxt_test.m:65
Als
Definition: xxt_test.m:40
dX
Definition: xxt_test.m:68
Ai([6 1 7 1 7 2 8],[6 3 1 7 5 2 8 4])'Ai([6 3 7 5]
X1
Definition: xxt_test.m:66