1 |
|
2 |
kwr=1; |
3 |
nc=24; |
4 |
np=nc+1; n6x=6*nc; nPg=n6x*nc; |
5 |
addAngle=1; |
6 |
|
7 |
outpName='grid_cs24'; |
8 |
inpName='tile.mitgrid'; |
9 |
rDir='./'; |
10 |
|
11 |
for n=1:6, |
12 |
%-- read : |
13 |
p=strfind(inpName,'.mitgrid'); |
14 |
if isempty(p), |
15 |
namF=sprintf([rDir,inpName,'.face%3.3i.bin'],n); |
16 |
else |
17 |
namF=sprintf([rDir,inpName(1:4),'%3.3i',inpName(5:end)],n); |
18 |
end |
19 |
fid=fopen(namF,'r','b'); |
20 |
vv1=fread(fid,'real*8'); |
21 |
fclose(fid); |
22 |
s=size(vv1,1); k1=s/np/np; |
23 |
fprintf(['read: ',namF,' : size: %i (%ix%ix%i)\n'],s,np,np,k1); |
24 |
vv1=reshape(vv1,[np np k1]); |
25 |
%--- save each face: |
26 |
if n == 1, |
27 |
vvf=zeros(np,np,6,k1); |
28 |
end |
29 |
vvf(:,:,n,:)=vv1; |
30 |
%-- fix missing corner values : |
31 |
if mod(n,2) == 1, i=1; j=np; else i=np; j=1; end |
32 |
%- xG k= 6 : Corner Max diff m1 = 1.42109e-14 (f3,f5= 1.42109e-14 -7.10543e-15) |
33 |
if n == 3 | n == 5, |
34 |
k=6; |
35 |
vvf(i,j,n,k)=vvf(i,j,1,k); |
36 |
end |
37 |
%- yG k= 7 : Corner Max diff m2 = 7.10543e-15 (f4,f6= 0 7.10543e-15) |
38 |
if n == 6, |
39 |
k=7; |
40 |
vvf(i,j,n,k)=vvf(i,j,2,k); |
41 |
end |
42 |
end |
43 |
|
44 |
%- XC YC DXF DYF RA XG YG DXV DYU RAZ DXC DYC RAW RAS DXG DYG: |
45 |
if addAngle == 1, |
46 |
%-- Compute angle: |
47 |
var=vvf(1:nc,1:nc,:, 7); var=reshape(permute(var,[1 3 2]),[nPg 1]); |
48 |
yG =zeros(nPg+2,1); yG(1:nPg,1)=var; |
49 |
yG(nPg+1,1)=vvf(1,np,1,7); yG(nPg+2,1)=vvf(np,1,2,7); |
50 |
var=vvf(1:nc,1:nc,:, 5); rAc=reshape(permute(var,[1 3 2]),[n6x nc]); |
51 |
var=vvf(1:nc,1:nc,:,15); dxG=reshape(permute(var,[1 3 2]),[n6x nc]); |
52 |
var=vvf(1:nc,1:nc,:,16); dyG=reshape(permute(var,[1 3 2]),[n6x nc]); |
53 |
|
54 |
[anCs,anSn] = cubeCalcAngle(yG,rAc,dxG,dyG); |
55 |
anCs=permute(reshape(anCs,[nc 6 nc]),[1 3 2]); |
56 |
anSn=permute(reshape(anSn,[nc 6 nc]),[1 3 2]); |
57 |
end |
58 |
|
59 |
if kwr == 1, |
60 |
%-- write to file: |
61 |
for n=1:6, |
62 |
if addAngle == 1, |
63 |
%-- Add angle: |
64 |
k2=k1+2; |
65 |
vv2=zeros(np,np,k2); vv2(:,:,[1:k1])=vvf(:,:,n,:); |
66 |
vv2([1:nc],[1:nc],k1+1)=anCs(:,:,n); |
67 |
vv2([1:nc],[1:nc],k1+2)=anSn(:,:,n); |
68 |
else |
69 |
%-- do not add angle: |
70 |
vv2=vvf(:,:,n,:); |
71 |
end |
72 |
namW=sprintf([outpName,'.face%3.3i.bin'],n); |
73 |
fid=fopen(namW,'w','b'); |
74 |
fwrite(fid,vv2,'real*8'); |
75 |
fclose(fid); |
76 |
fprintf([' write to file: ',namW,' %i 2D.var(%ix%i)\n'],k2,np,np); |
77 |
end |
78 |
end |
79 |
|