-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathblockD2.m
38 lines (35 loc) · 1.23 KB
/
blockD2.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
fid = fopen('J.dat');
n1 = textscan(fid,'%f',1,'HeaderLines',3); n1 = n1{1};
m1 = textscan(fid,'%f',1); m1 = m1{1};
issym = textscan(fid,'%u',1); issymNSL = issym{1};
ncoef = textscan(fid,'%f',1); ncoef = ncoef{1};
%--- read data line by line
ii = zeros(ncoef,1);
jj = zeros(ncoef,1);
aij = zeros(ncoef,1);
for kk=1:ncoef
iitmp = textscan(fid,'%u',1); ii(kk) = iitmp{1};
jjtmp = textscan(fid,'%u',1); jj(kk) = jjtmp{1};
aijtmp = textscan(fid,' %f %c %f %c',1); aij(kk) = aijtmp{1};
end
fclose(fid);
Jac = sparse(ii,jj,aij,n1,m1);
clear('aij','ii','jj');
%Jac+0
spy(Jac)
%**********************************************************************%
N=40;
[Rmat,n1,m1,m2,m3,m4]=Rmatrix_d2(N);
JStar=Rmat'*Jac*Rmat;
n1=size(Jac);
for k=1:n1
for l=1:n1
if (abs(JStar(k,l))<0.00001 )
JStar(k,l)=0;
end
end
end
block1=JStar(1:2*m1,1:2*m1);
block2=JStar(2*m1+1:2*(m1+m2),2*m1+1:2*(m1+m2));
block3=JStar(2*(m1+m2)+1:2*(m1+m2+m3),2*m2+2*m1+1:2*(m1+m2+m3));
block4=JStar(2*(m1+m2+m3)+1:2*(m1+m2+m3+m4),2*(m1+m2+m3)+1:2*(m1+m2+m3+m4));