Browse Source

Gitlab Upgrade

master
clayshieh 4 years ago
commit
bf5c09911f
21 changed files with 3782 additions and 0 deletions
  1. +44
    -0
      Inputs.csv
  2. +217
    -0
      Modified MCode/SN_per_bench_solver.m
  3. +163
    -0
      Modified MCode/periodic_benchmark.m
  4. +382
    -0
      Vanilla MCode/New_SN_bench_solver_MC.m
  5. +212
    -0
      Vanilla MCode/SN_hom.m
  6. +207
    -0
      Vanilla MCode/SN_per_bench_solver.m
  7. +143
    -0
      Vanilla MCode/periodic_benchmark.m
  8. +32
    -0
      compare.py
  9. +202
    -0
      csv/A.csv
  10. +202
    -0
      csv/B.csv
  11. +102
    -0
      csv/L.csv
  12. +101
    -0
      csv/SCAL.csv
  13. +101
    -0
      csv/SF.csv
  14. +200
    -0
      csv/X.csv
  15. +202
    -0
      csv/Y.csv
  16. +202
    -0
      csv/Z.csv
  17. +100
    -0
      csv/extra.csv
  18. +101
    -0
      csv/h.csv
  19. +21
    -0
      csv/xsn.csv
  20. +10
    -0
      steady-state.config
  21. +838
    -0
      steady-state.py

+ 44
- 0
Inputs.csv
File diff suppressed because it is too large
View File


+ 217
- 0
Modified MCode/SN_per_bench_solver.m View File

@@ -0,0 +1,217 @@
%THIS IS THE AUXILIARY FUNCTION OF THE MAIN CODE "periodic_benchmark"

%RICHARD VASQUES & NITIN KUMAR YADAV


function[Z,extra,n1,B,L,A,h] = SN_per_bench_solver(T,m1,m2,n,N,Es1,Es2,Et1,Et2,yo,y_,Q1,Q2,u,wt,a)

%Periodic Medium........
interval=T/n;
m12=zeros(2,1);
m12(1)=m1;m12(2)=m2;
mm=0;
i=0;
s=0;
if a>1
if a<m2/interval+2
i=i+1;
x1=(a-1)*interval;
s=s+x1;
x(i,1)=s;
x(i,2)=2;
else
i=i+1;
x1=(a-m2/interval-1)*interval;
s=s+x1;
x(i,1)=s;
x(i,2)=mod(mm,2)+1;
mm=mm+1;
end
end

while s<T
i=i+1;
x1=m12(mod(mm,2)+1);
s=s+x1;
if s<=T
x(i,1)=s;
else
x(i,1)=T;
end
x(i,2)=mod(mm,2)+1;
mm=mm+1;
end

H=T/n;n1=1;i=1;j=1;
extra=zeros(n,1);
t1=i*H; %%%%%%WHATS THE POINT OF THIS???
dlmwrite('xsn_m.txt',x,'delimiter',',','precision',18);
display('saved xsn');
L(1,1)=0;L(1,2)=x(j,2);
if t1==x(j,1)
display('hi');
extra(i)=1;
h(n1)=x(j,1)/2;
L(n1+1,1)=h(n1);
L(n1+1,2)=x(j,2);
h(n1+1)=h(n1);
L(n1+2,1)=x(j,1);
L(n1+2,2)=3;
n1=n1+2;
i=i+1;
t1=i*H;
else
while t1<=x(j,1)
h(n1)=H;
display(H);
L(n1+1,1)=i*H;
if L(n1+1,1)==x(j,1) % checking is point is interface point?
L(n1+1,2)=3;
else
L(n1+1,2)=x(j,2);
end
n1=n1+1;
i=i+1;
t1=i*H;
end
end
j=2;
if x(1,1)~=T
while i<=n
while t1<=x(j,1)
L(n1+1,1)=i*H;
if L(n1+1,1)==x(j,1) %checking is point is interface point
L(n1+1,2)=3;
else
L(n1+1,2)=x(j,2);
end
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
i=i+1;
t1=i*H;
end
j=j+1;
if L(n1,1)==T && L(n1,2)==3 && L(n1-1,2)==3
display('boop');
display(n1);
i=i-1;
extra(i)=extra(i)+1;
L(n1,1)=(x(j-1,1)+x(j-2,1))/2;
L(n1,2)=x(j-1,2);
h(n1-1)=L(n1,1)-L(n1-1,1);
n1=n1+1;
display(n1);
L(n1,1)=x(j-1,1);
L(n1,2)=3;
h(n1-1)=L(n1,1)-L(n1-1,1);
i=i+1;
end
end
end
n1=n1-1;
A=zeros(N*n1,N*n1); B=zeros(N*n1,1);
Et12=zeros(2,1); Es12=zeros(2,1); Q12=zeros(2,1);
Et12(1)=Et1;Et12(2)=Et2;
Es12(1)=Es1;Es12(2)=Es2;
Q12(1)=Q1;Q12(2)=Q2;


% Diagonal Block of matrix up to N/2.................................
for t=1:N/2
s=(t-1)*n1;
A(s+1,s+1)=-u(t)*(1/h(1))+Et12(L(1,2))-Es12(L(1,2))*wt(t)/2;
A(s+1,s+2)=u(t)*(1/h(1));
B(s+1)=Q12(L(1,2))/2;
for i=2:n1-1
if L(i,2)==3
if i==n1-1
A(s+i,s+i)=-u(t)*(1/h(i)+1/(h(i)+h(i+1)))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*(1/h(i)+1/h(i+1));
B(s+i)=u(t)*y_*(h(i)/(h(i+1)*(h(i)+h(i+1))))+Q12(L(i+1,2))/2;
else
A(s+i,s+i)=-u(t)*(1/h(i)+1/(h(i)+h(i+1)))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*(1/h(i)+1/h(i+1));
A(s+i,s+i+2)=-u(t)*(h(i)/(h(i+1)*(h(i)+h(i+1))));
B(s+i)=Q12(L(i+1,2))/2;
end
else
A(s+i,s+i-1)=-u(t)*h(i)/(h(i-1)*(h(i-1)+h(i)));
A(s+i,s+i)=u(t)*(h(i)-h(i-1))/(h(i)*h(i-1))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*h(i-1)/(h(i)*(h(i-1)+h(i)));
B(s+i)=Q12(L(i,2))/2;
end
end
A(s+n1,s+n1-1)=-u(t)*h(n1)/(h(n1-1)*(h(n1-1)+h(n1)));
A(s+n1,s+n1)=u(t)*(h(n1)-h(n1-1))/(h(n1)*h(n1-1))+Et12(L(n1,2))-Es12(L(n1,2))*wt(t)/2;
B(s+n1)=-u(t)*y_*h(n1-1)/(h(n1)*(h(n1-1)+h(n1)))+Q12(L(n1,2))/2;
% Blocks from N/2 to N........................................
a=0;
for p=1:N/2
S=(N/2+p-1)*n1;
for i=2:n1
if L(i,2)==3
A(s+i,S+i-1)=-Es12(L(i+1,2))*wt(N/2+p)/2;
else
A(s+i,S+i-1)=-Es12(L(i,2))*wt(N/2+p)/2;
end
end
a=a+(Es12(L(1,2))*wt(N/2+p)*yo/2);
end
B(s+1)=B(s+1)+a;
end
% Diagonal Block of matrix from N/2+1 to N.........................
for t=N/2+1:N
s=(t-1)*n1;
A(s+1,s+1)=u(t)*(h(2)-h(1))/(h(2)*h(1))+Et12(L(1,2))-Es12(L(1,2))*wt(t)/2;
A(s+1,s+1+1) = u(t)*h(1)/(h(2)*(h(1)+h(2)));
B(s+1)=u(t)*yo*h(2)/(h(1)*(h(1)+h(2)))+Q12(L(1,2))/2;
for i=2:n1-1
if L(i+1,2)==3
if i==2
A(s+i,s+i)=u(t)*(1/h(i)+1/(h(i)+h(i-1)))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i-1)=-u(t)*(1/h(i)+1/h(i-1));
B(s+i)=-u(t)*yo*(h(i)/(h(i-1)*(h(i)+h(i-1))))+Q12(L(i,2))/2;
else
A(s+i,s+i)=u(t)*(1/h(i)+1/(h(i)+h(i-1)))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i-1)=-u(t)*(1/h(i)+1/h(i-1));
A(s+i,s+i-2)=u(t)*(h(i)/(h(i-1)*(h(i)+h(i-1))));
B(s+i)=Q12(L(i,2))/2;
if s+i ==105
fprintf('105');
end
end
else
A(s+i,s+i-1)=-u(t)*h(i+1)/(h(i)*(h(i)+h(i+1)));
A(s+i,s+i)=u(t)*(h(i+1)-h(i))/(h(i+1)*h(i))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*h(i)/(h(i+1)*(h(i)+h(i+1)));
B(s+i)=Q12(L(i+1,2))/2;
end
end
A(s+n1,s+n1)=u(t)*(1/h(n1))+Et12(L(n1,2))-Es12(L(n1,2))*wt(t)/2;
A(s+n1,s+n1-1)=-u(t)*(1/h(n1));
B(s+n1)=Q12(L(n1,2))/2;
% Blocks from 1 to N/2........................................
a=0;
for p=1:N/2
S=(p-1)*n1;
for i=1:n1-1
if L(i+1,2)==3
A(s+i,S+i+1)=-Es12(L(i,2))*wt(p)/2;
else
A(s+i,S+i+1)=-Es12(L(i+1,2))*wt(p)/2;
end
end
a=a+(Es12(L(n1,2))*wt(p)*y_/2);
end
B(s+n1)=B(s+n1)+a;
end

Z=A\B; % Solving for angular flux.

return
end

+ 163
- 0
Modified MCode/periodic_benchmark.m View File

@@ -0,0 +1,163 @@
%THIS CODE GENERATES ENSEMBLE-AVERAGED BENCHMARK RESULTS FOR THE
%STEADY-STATE, MONOENERGETIC TRANSPORT EQUATION IN A PERIODIC MEDIUM
%COMPOSED OF TWO MATERIALS WITH ISOTROPIC SCATTERING AND ISOTROPIC SOURCE
%IN ROD GEOMETRY. THE TOTAL NUMBER OF REALIZATIONS IS DEFINED BY THE
%SPATIAL DISCRETIZATION.

%THIS CODE CALLS THE SOLVER ROUTINE "SN_per_bench_solver", USING 2-POINT CENTRAL
%DIFFERENCING (ORDER H^2).

clear all
clc

%------------------------------------------------------------
%INPUTS
T= 20; % total length of the system
n= 100; % # of points (discretization)

yo=0.; % left boundary condition
y_=0.; % right boundary condition

m1= 1.0; % thickness of material 1 layers
m2= 1.0; % thickness of material 2 layers

Et1= 1.0; % total cross section Sigma_t1 of material 1
cc= 0.5; % Scattering Ratio c1 of material 1
Q1= 1.0; % homogeneous isotropic Source of material 1

Et2=0.; % total cross section Sigma_t2 of material 2
cc2= 0.; % Scattering Ratio c2 of material 2
Q2= 0.; % homogeneous isotropic Source of material 2
%------------------------------------------------------------
%------------------------------------------------------------

Es1=cc*Et1;
Ea1= Et1-Es1;
Es2=cc2*Et2;
Ea2= Et2-Es2;

%weights and directions
N=2;
wt(1)= 1;
wt(2)=1;
u(1)=-1;
u(2)=1;

a=1;
reflec=0;reflec2=0;
transm=0;transm2=0;
SF=zeros(n+1,1);
SF2=zeros(n+1,1);
cond=0;

%MAIN LOOP
total = (m1+m2)/(T/n);

while(a<(total+1))
fprintf('Problem %d of %d\n', a, total);
[Z,extra,n1,B,L,A,h] = SN_per_bench_solver(T,m1,m2,n,N,Es1,Es2,Et1,Et2,yo,y_,Q1,Q2,u,wt,a);
dlmwrite('L_m.txt',L,'delimiter',',','precision',18);
dlmwrite('Z_m.txt',Z,'delimiter',',','precision',18);
dlmwrite('A_m.txt',A,'delimiter',',','precision',18);
dlmwrite('B_m.txt',B,'delimiter',',','precision',18);
dlmwrite('extra_m.txt',extra,'delimiter',',','precision',18);
dlmwrite('h_m.txt',transpose(h),'delimiter',',','precision',18);
% Adjusting points..........................
X=zeros(n*N,1);
for i=1:N/2
X((i-1)*n+1)=Z((i-1)*n1+1);
k=2;
for j=2:n
%display(k);
k=k+extra(j-1);
%display(k);
X((i-1)*n+j)=Z((i-1)*n1+k);
k=k+1;
end
end
for i=N/2+1:N
k=1;
for j=1:n
%display(k);
k=k+extra(j);
%display((i-1)*n1+k);
X((i-1)*n+j)=Z((i-1)*n1+k);
% if (i-1)*n+j == 102
% display('here');
% display((i-1)*n1+k);
% display(Z((i-1)*n1+k));
% end
k=k+1;
end
end
Y=zeros(N*(n+1),1);
% Adding boundary conditions...............
i=1;
for t=1:N/2
s=(t-1);
for j=i:t*n+s
Y(j)=X(j-s);
end
Y(j+1)=y_;
i=j+2;
end
i=i-1;
for t=N/2+1:N
Y(i+1)=yo;
i=i+1;
for j=i+1:t*n+t
Y(j)=X(j-t);
end
i=j;
end
dlmwrite('X_m.txt',X,'delimiter',',','precision',18);
dlmwrite('Y_m.txt',Y,'delimiter',',','precision',18);
% Calculating Reflection, Transmission and Scalar Flux......
RL=0;
for t=1:N/2
s=(t-1)*n;
RL=RL+abs(wt(t)*u(t)*Y(s+t));
end
TR=0;
for t=N/2+1:N
s=(t-1)*n;
TR=TR+wt(t)*u(t)*Y(s+n+t);
end
m=n+1;
SCAL=zeros(m,1);
for t=1:N
s=(t-1)*m;
for i=1:m
SCAL(i)=SCAL(i)+wt(t)*Y(s+i);
end
end
reflec=reflec+RL;
reflec2=reflec2+(RL)^2;
transm=transm+TR;
transm2=transm2+(TR)^2;
for i=1:n+1
SF(i)=SF(i)+SCAL(i);
SF2(i)=SF2(i)+(SCAL(i))^2;
end
a=a+1;
end
a=a-1;
SF=SF./a;
SF2=SF2./a;
dlmwrite('SF_m.txt',SF,'delimiter',',','precision',18);
kk=T/n;
p=0:kk:T; % p is line along x-axis.
plot(p,SF,'r'); hold on
plot(p,SF2,'b');

save per_bench.mat


+ 382
- 0
Vanilla MCode/New_SN_bench_solver_MC.m View File

@@ -0,0 +1,382 @@
%THIS IS THE AUXILIARY FUNCTION OF THE MAIN CODE "New_SN_bench"

%RICHARD VASQUES & NITIN KUMAR YADAV


function[Z,extra,n1,randseed] = New_SN_bench_solver_MC(T,m1,m2,n,N,Es1,Es2,Et1,Et2,yo,y_,Q1,Q2,u,wt,randseed,med,a)

%Building realization----------
%EXP. Random Medium....
if med==0
rng(randseed);
m12=zeros(2,1);
m12(1)=m1;m12(2)=m2;
xx=rand(1);
if xx<=m1/(m1+m2)
mm=0;
else
mm=1;
end
s=0;i=0;
while s<T
i=i+1;
x1=exprnd(m12(mod(mm,2)+1),1,1);
s=s+x1;
if s<=T
x(i,1)=s;
else
x(i,1)=T;
end
x(i,2)=mod(mm,2)+1;
mm=mm+1;
end
randseed=rng;
else
interval=T/n;
%Periodic Medium........
m12=zeros(2,1);
m12(1)=m1;m12(2)=m2;
mm=0;
i=0;
s=0;
if a>1
if a<m1/interval+2
i=i+1;
x1=(a-1)*interval;
s=s+x1;
x(i,1)=s;
x(i,2)=2;
else
i=i+1;
x1=(a-m1/interval-1)*interval;
s=s+x1;
x(i,1)=s;
x(i,2)=mod(mm,2)+1;
mm=mm+1;
end
end
while s<T
i=i+1;
x1=m12(mod(mm,2)+1);
s=s+x1;
if s<=T
x(i,1)=s;
else
x(i,1)=T;
end
x(i,2)=mod(mm,2)+1;
mm=mm+1;
end
end
%Adding interfaces and extra points inside layers--------------

%L(*,1) is the spatial point
%L(*,2) indicates in which material is the spatial point (1 or 2).
%If L(*,2)=3, the point is an interface.
H=T/n;n1=1;i=1;j=1;
extra=zeros(n,1);
t1=i*H;
L(1,1)=0;L(1,2)=x(j,2);
if t1>x(j,1)
extra(i)=2;
h(n1)=x(j,1)/2;
L(n1+1,1)=h(n1);
L(n1+1,2)=x(j,2);
h(n1+1)=h(n1);
L(n1+2,1)=x(j,1);
L(n1+2,2)=3;
n1=n1+2;
else
while t1<=x(j,1)
h(n1)=H;
L(n1+1,1)=i*H;
if L(n1+1,1)==x(j,1) % checking is point is interface point?
L(n1+1,2)=3;
else
L(n1+1,2)=x(j,2);
end
n1=n1+1;
i=i+1;
t1=i*H;
end
if x(j,1)<T && L(n1)~=x(j,1)
extra(i)=1;
L(n1+1,1)=x(j,1);
L(n1+1,2)=3;
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
end
if t1==T && (x(j+1,1)-x(j,1))<H
extra(i)=extra(i)+1;
j=j+1;
L(n1+1,1)=(x(j,1)+x(j-1,1))/2;
L(n1+1,2)=x(j-1,2);
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
L(n1+1,1)=x(j,1);
L(n1+1,2)=3;
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
i=i+1;
end
end
j=2;
if x(1,1)~=T
while i<=n
if t1>x(j,1)
extra(i)=extra(i)+2;
L(n1+1,1)=(x(j,1)+x(j-1,1))/2;
L(n1+1,2)=x(j,2);
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
L(n1+1,1)=x(j,1);
L(n1+1,2)=3;
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
else
while t1<=x(j,1)
L(n1+1,1)=i*H;
if L(n1+1,1)==x(j,1) %checking is point is interface point?
L(n1+1,2)=3;
else
L(n1+1,2)=x(j,2);
end
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
i=i+1;
t1=i*H;
end
if x(j,1)<T && L(n1)~=x(j,1)
extra(i)=extra(i)+1;
L(n1+1,1)=x(j,1);
L(n1+1,2)=3;
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
end
end
j=j+1;
if t1==T && (x(j,1)-x(j-1,1))<H
extra(i)=extra(i)+1;
L(n1+1,1)=(x(j,1)+x(j-1,1))/2;
L(n1+1,2)=x(j-1,2);
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
L(n1+1,1)=x(j,1);
L(n1+1,2)=3;
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
i=i+1;
end
end
end
n1=n1-1;

A=zeros(N*n1,N*n1); B=zeros(N*n1,1);
Et12=zeros(2,1); Es12=zeros(2,1); Q12=zeros(2,1);
Et12(1)=Et1;Et12(2)=Et2;
Es12(1)=Es1;Es12(2)=Es2;
Q12(1)=Q1;Q12(2)=Q2;
minleft=T/2-m1/2;
maxright=T/2+m1/2;

% Diagonal Block of matrix up to N/2.................................
for t=1:N/2
s=(t-1)*n1;
A(s+1,s+1)=-u(t)*(1/h(1)+1/(h(1)+h(2)))+Et12(L(1,2))-Es12(L(1,2))*wt(t)/2;
A(s+1,s+2)=u(t)*(1/h(1)+1/h(2));
A(s+1,s+3)=-u(t)*(h(1)/(h(2)*(h(1)+h(2))));
%B(s+1)=Q12(L(1,2))/2;
B(s+1)=0.;
for i=2:n1-1
if L(i,2)==3
if i==n1-1
A(s+i,s+i)=-u(t)*(1/h(i)+1/(h(i)+h(i+1)))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*(1/h(i)+1/h(i+1));
if L(i+1,1)>=minleft && L(i+1,1)<=maxright
B(s+i)=u(t)*y_*(h(i)/(h(i+1)*(h(i)+h(i+1))))+Q12(L(i+1,2))/2;
else
B(s+i)=u(t)*y_*(h(i)/(h(i+1)*(h(i)+h(i+1))));
end
else
A(s+i,s+i)=-u(t)*(1/h(i)+1/(h(i)+h(i+1)))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*(1/h(i)+1/h(i+1));
A(s+i,s+i+2)=-u(t)*(h(i)/(h(i+1)*(h(i)+h(i+1))));
if L(i+1,1)>=minleft && L(i+1,1)<=maxright
B(s+i)=Q12(L(i+1,2))/2;
else
B(s+i)=0.;
end
end
else
A(s+i,s+i-1)=-u(t)*h(i)/(h(i-1)*(h(i-1)+h(i)));
A(s+i,s+i)=u(t)*(h(i)-h(i-1))/(h(i)*h(i-1))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*h(i-1)/(h(i)*(h(i-1)+h(i)));
if L(i,1)>=minleft && L(i,1)<=maxright
B(s+i)=Q12(L(i,2))/2;
else
B(s+i)=0.;
end
end
end
A(s+n1,s+n1-1)=-u(t)*h(n1)/(h(n1-1)*(h(n1-1)+h(n1)));
A(s+n1,s+n1)=u(t)*(h(n1)-h(n1-1))/(h(n1)*h(n1-1))+Et12(L(n1,2))-Es12(L(n1,2))*wt(t)/2;
%B(s+n1)=-u(t)*y_*h(n1-1)/(h(n1)*(h(n1-1)+h(n1)))+Q12(L(n1,2))/2;
B(s+n1)=-u(t)*y_*h(n1-1)/(h(n1)*(h(n1-1)+h(n1)));
% Remaining Blocks in same direction up to N/2..............
l=t;
if l==1 && N>2
for p=l+1:N/2
S=(p-1)*n1;
for i=1:n1
if L(i,2)==3
A(s+i,S+i)=-Es12(L(i+1,2))*wt(p)/2;
else
A(s+i,S+i)=-Es12(L(i,2))*wt(p)/2;
end
end
end
elseif l>1 && N>2
for p=1:l-1
S=(p-1)*n1;
for i=1:n1
if L(i,2)==3
A(s+i,S+i)=-Es12(L(i+1,2))*wt(p)/2;
else
A(s+i,S+i)=-Es12(L(i,2))*wt(p)/2;
end
end
end
for p=l+1:N/2
S=(p-1)*n1;
for i=1:n1
if L(i,2)==3
A(s+i,S+i)=-Es12(L(i+1,2))*wt(p)/2;
else
A(s+i,S+i)=-Es12(L(i,2))*wt(p)/2;
end;
end
end
end
% Blocks from N/2 to N........................................
a=0;
for p=1:N/2
S=(N/2+p-1)*n1;
for i=2:n1
if L(i,2)==3
A(s+i,S+i-1)=-Es12(L(i+1,2))*wt(N/2+p)/2;
else
A(s+i,S+i-1)=-Es12(L(i,2))*wt(N/2+p)/2;
end
end
a=a+(Es12(L(1,2))*wt(N/2+p)*yo/2);
end
B(s+1)=B(s+1)+a;
end
% Diagonal Block of matrix from N/2+1 to N.........................
for t=N/2+1:N
s=(t-1)*n1;
A(s+1,s+1)=u(t)*(h(2)-h(1))/(h(2)*h(1))+Et12(L(1,2))-Es12(L(1,2))*wt(t)/2;
A(s+1,s+1+1) = u(t)*h(1)/(h(2)*(h(1)+h(2)));
%B(s+1)=u(t)*yo*h(2)/(h(1)*(h(1)+h(2)))+Q12(L(1,2))/2;
B(s+1)=u(t)*yo*h(2)/(h(1)*(h(1)+h(2)));
for i=2:n1-1
if L(i+1,2)==3
if i==2
A(s+i,s+i)=u(t)*(1/h(i)+1/(h(i)+h(i-1)))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i-1)=-u(t)*(1/h(i)+1/h(i-1));
if L(i,1)>=minleft && L(i,1)<=maxright
B(s+i)=-u(t)*yo*(h(i)/(h(i-1)*(h(i)+h(i-1))))+Q12(L(i,2))/2;
else
B(s+i)=-u(t)*yo*(h(i)/(h(i-1)*(h(i)+h(i-1))));
end
else
A(s+i,s+i)=u(t)*(1/h(i)+1/(h(i)+h(i-1)))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i-1)=-u(t)*(1/h(i)+1/h(i-1));
A(s+i,s+i-2)=u(t)*(h(i)/(h(i-1)*(h(i)+h(i-1))));
if L(i,1)>=minleft && L(i,1)<=maxright
B(s+i)=Q12(L(i,2))/2;
else
B(s+i)=0.;
end
end
else
A(s+i,s+i-1)=-u(t)*h(i+1)/(h(i)*(h(i)+h(i+1)));
A(s+i,s+i)=u(t)*(h(i+1)-h(i))/(h(i+1)*h(i))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*h(i)/(h(i+1)*(h(i)+h(i+1)));
if L(i+1,1)>=minleft && L(i+1,1)<=maxright
B(s+i)=Q12(L(i+1,2))/2;
else
B(s+i)=0.;
end
end
end
A(s+n1,s+n1)=u(t)*(1/h(n1)+1/(h(n1)+h(n1-1)))+Et12(L(n1,2))-Es12(L(n1,2))*wt(t)/2;
A(s+n1,s+n1-1)=-u(t)*(1/h(n1)+1/h(n1-1));
A(s+n1,s+n1-2)=u(t)*(h(n1)/(h(n1-1)*(h(n1)+h(n1-1))));
%B(s+n1)=Q12(L(n1,2))/2;
B(s+n1)=0.;
% Remaining Blocks in same direction up to N..............
l=t;
if l==N/2+1 && N>2
for p=l+1:N
S=(p-1)*n1;
for i=1:n1
if L(i+1,2)==3
A(s+i,S+i)=-Es12(L(i,2))*wt(p)/2;
else
A(s+i,S+i)=-Es12(L(i+1,2))*wt(p)/2;
end
end
end
elseif l>N/2+1 && N>2
for p=N/2+1:l-1
S=(p-1)*n1;
for i=1:n1
if L(i+1,2)==3
A(s+i,S+i)=-Es12(L(i,2))*wt(p)/2;
else
A(s+i,S+i)=-Es12(L(i+1,2))*wt(p)/2;
end
end
end
for p=l+1:N
S=(p-1)*n1;
for i=1:n1
if L(i+1,2)==3
A(s+i,S+i)=-Es12(L(i,2))*wt(p)/2;
else
A(s+i,S+i)=-Es12(L(i+1,2))*wt(p)/2;
end
end
end
end
% Blocks from 1 to N/2........................................
a=0;
for p=1:N/2
S=(p-1)*n1;
for i=1:n1-1
if L(i+1,2)==3
A(s+i,S+i+1)=-Es12(L(i,2))*wt(p)/2;
else
A(s+i,S+i+1)=-Es12(L(i+1,2))*wt(p)/2;
end
end
a=a+(Es12(L(n1,2))*wt(p)*y_/2);
end
B(s+n1)=B(s+n1)+a;
end

Z=A\B; % Solving for angular flux.
return
end

%If you want to see Flux outgoing in positive directin see Y(n) or Z(M+1)
%If you want see Flux scattering back see Y(n+1) or Z(M+2)

+ 212
- 0
Vanilla MCode/SN_hom.m View File

@@ -0,0 +1,212 @@
%THIS CODE SOLVES THE STEADY-STATE, MONOENERGETIC TRANSPORT EQUATION
%IN A HOMOGENEOUS MEDIUM WITH ISOTROPIC SCATTERING AND ISOTROPIC SOURCE
%IN ROD AND SLAB (SN) GEOMETRIES. IT USES 2-POINT CENTRAL DIFFERENCING
%(ORDER H^2) WITH 3-POINT FORWARD/BACKWARD AT THE BOUNDARIES.

%MAIN OUTPUTS: transmission "TR"; reflection "RL"
% scalar flux "SCAL"

%RICHARD VASQUES & NITIN KUMAR YADAV

clear all
clc
% INPUTS--------------------------------
display('Default is ROD geometry!!');
display(' ');
rod_slab=input('Enter 1 if you want to change to SLAB Geometry: ');
if rod_slab==1
N=1;
while floor(N/2)~=ceil(N/2)
N=input( 'Enter the number of Discrete ordinate directions: ');
end
clc
display('SOLVING PROBLEM IN SLAB GEOMETRY!!');
display(' ')
else
rod_slab=0;
clc
display('SOLVING PROBLEM IN ROD GEOMETRY!!');
display(' ');
N=2;
end
T=input('Enter the total length of the system: ');
n=1;
while n<4
n=input('Enter at how many points you want to calculate: ');
end
Et=input('Enter the total cross section Sigma_t : ');
cc=10;
while cc>1 || cc<0
cc=input('Enter the Scattering Ratio c (between 0 and 1): ');
end
Es = cc*Et;
yo=input('Enter the boundary value in the positive direction: ');
y_=input('Enter the boundary value in the negative direction: ');
Q=input('Enter the homogeneous isotropic Source: ');

M=n*N; h=T/n;
A=zeros(M,M); B(1:M)=Q/2;

% GAUSS-LEGENDRE QUADRATURE............................
beta = (1:N-1)./sqrt(4*((1:N-1)).^2-1);
[w,x] = eig(diag(beta,-1)+diag(beta,1));
u = diag(x);
wt = 2*w(1,:)'.^2;
if rod_slab~=1
u(1)=-1;u(2)=1;
end

% Diagonal Block of matrix up to N/2.................................
for t=1:N/2
s=(t-1)*n;
A(s+1,s+1)=(-11*u(t)/(6*h)+Et-Es*wt(t)/2);
A(s+1,s+2) = 3*u(t)/h;
A(s+1,s+3) = -3*u(t)/(2*h);
A(s+1,s+4) = u(t)/(3*h);
for i=2:n-1
A(s+i,s+i-1) = -u(t)/(2*h);
A(s+i,s+i)=(Et-Es*wt(t)/2);
A(s+i,s+i+1)= u(t)/(2*h);
end
A(s+n,s+n-1) = -u(t)/(2*h);
A(s+n,s+n)=(Et-Es*wt(t)/2);
B(s+n)=-u(t)*y_/(2*h)+Q/2;
% Remaining Blocks in same direction up to N/2..............
l=t;
if l==1 && N>2
for p=l+1:N/2
S=(p-1)*n;
for i=1:n
A(s+i,S+i)=-Es*wt(p)/2;
end
end
elseif l>1 && N>2
for p=1:l-1
S=(p-1)*n;
for i=1:n
A(s+i,S+i)=-Es*wt(p)/2;
end
end
for p=l+1:N/2
S=(p-1)*n;
for i=1:n
A(s+i,S+i)=-Es*wt(p)/2;
end
end
end
% Blocks from N/2 to N........................................
a=0;
for p=1:N/2
S=(N/2+p-1)*n;
for i=2:n
A(s+i,S+i-1)=-Es*wt(N/2+p)/2;
end
a=a+(Es*wt(N/2+p)*yo/2);
end
B(s+1)=a+Q/2;
end


% Diagonal Block of matrix from N/2+1 to N.........................
for t=N/2+1:N
s=(t-1)*n;
A(s+1,s+1)=(Et-Es*wt(t)/2);
A(s+1,s+1+1) = u(t)/(2*h);
B(s+1)=u(t)*yo/(2*h)+Q/2;
for i=2:n-1
A(s+i,s+i-1) = -u(t)/(2*h);
A(s+i,s+i)=(Et-Es*wt(t)/2);
A(s+i,s+i+1)= u(t)/(2*h);
end
A(s+n,s+n-3)=-u(t)/(3*h);
A(s+n,s+n-2)=3*u(t)/(2*h);
A(s+n,s+n-1)=-3*u(t)/h;
A(s+n,s+n) =(11*u(t)/(6*h)+Et-Es*wt(t)/2);
% Remaining Blocks in same direction up to N..............
l=t;
if l==N/2+1 && N>2
for p=l+1:N
S=(p-1)*n;
for i=1:n
A(s+i,S+i)=-Es*wt(p)/2;
end
end
elseif l>N/2+1 && N>2
for p=N/2+1:l-1
S=(p-1)*n;
for i=1:n
A(s+i,S+i)=-Es*wt(p)/2;
end
end
for p=l+1:N
S=(p-1)*n;
for i=1:n
A(s+i,S+i)=-Es*wt(p)/2;
end
end
end
% Blocks from 1 to N/2........................................
a=0;
for p=1:N/2
S=(p-1)*n;
for i=1:n-1
A(s+i,S+i+1)=-Es*wt(p)/2;
end
a=a+(Es*wt(p)*y_/2);
end
B(s+n)=a+Q/2;
end

X=A\B';

Y=zeros(M+N,1);

% Adding boundary conditions to the array...............
i=1;
for t=1:N/2
s=(t-1);
for j=i:t*n+s
Y(j)=X(j-s);
end
Y(j+1)=y_;
i=j+2;
end
i=i-1;
for t=N/2+1:N
Y(i+1)=yo;
i=i+1;
for j=i+1:t*n+t
Y(j)=X(j-t);
end
i=j;
end

% Calculating Reflection, Transmission and Scalar Flux...........
RL=0;
for t=1:N/2
s=(t-1)*n;
RL=RL+abs(wt(t)*u(t)*Y(s+t));
end
TR=0;
for t=N/2+1:N
s=(t-1)*n;
S=(t-N/2-1)*n;
k=N/2+1;
TR=TR+wt(t)*u(t)*Y(s+n+t);
end
m=n+1;
SCAL=zeros(m,1);
for t=1:N
s=(t-1)*m;
for i=1:m
SCAL(i)=SCAL(i)+wt(t)*Y(s+i);
end
end

x=0:h:T;
%plot(x,SCAL,'--');
plot(x,SCAL,'b'); hold on

+ 207
- 0
Vanilla MCode/SN_per_bench_solver.m View File

@@ -0,0 +1,207 @@
%THIS IS THE AUXILIARY FUNCTION OF THE MAIN CODE "periodic_benchmark"

%RICHARD VASQUES & NITIN KUMAR YADAV


function[Z,extra,n1,B] = SN_per_bench_solver(T,m1,m2,n,N,Es1,Es2,Et1,Et2,yo,y_,Q1,Q2,u,wt,a)

%Periodic Medium........
interval=T/n;
m12=zeros(2,1);
m12(1)=m1;m12(2)=m2;
mm=0;
i=0;
s=0;
if a>1
if a<m2/interval+2
i=i+1;
x1=(a-1)*interval;
s=s+x1;
x(i,1)=s;
x(i,2)=2;
else
i=i+1;
x1=(a-m2/interval-1)*interval;
s=s+x1;
x(i,1)=s;
x(i,2)=mod(mm,2)+1;
mm=mm+1;
end
end

while s<T
i=i+1;
x1=m12(mod(mm,2)+1);
s=s+x1;
if s<=T
x(i,1)=s;
else
x(i,1)=T;
end
x(i,2)=mod(mm,2)+1;
mm=mm+1;
end

H=T/n;n1=1;i=1;j=1;
extra=zeros(n,1);
t1=i*H;
L(1,1)=0;L(1,2)=x(j,2);
if t1==x(j,1)
extra(i)=1;
h(n1)=x(j,1)/2;
L(n1+1,1)=h(n1);
L(n1+1,2)=x(j,2);
h(n1+1)=h(n1);
L(n1+2,1)=x(j,1);
L(n1+2,2)=3;
n1=n1+2;
i=i+1;
t1=i*H;
else
while t1<=x(j,1)
h(n1)=H;
L(n1+1,1)=i*H;
if L(n1+1,1)==x(j,1) % checking is point is interface point?
L(n1+1,2)=3;
else
L(n1+1,2)=x(j,2);
end
n1=n1+1;
i=i+1;
t1=i*H;
end
end
j=2;
if x(1,1)~=T
while i<=n
while t1<=x(j,1)
L(n1+1,1)=i*H;
if L(n1+1,1)==x(j,1) %checking is point is interface point?
L(n1+1,2)=3;
else
L(n1+1,2)=x(j,2);
end
h(n1)=L(n1+1,1)-L(n1,1);
n1=n1+1;
i=i+1;
t1=i*H;
end
j=j+1;
if L(n1,1)==T && L(n1,2)==3 && L(n1-1,2)==3
i=i-1;
extra(i)=extra(i)+1;
L(n1,1)=(x(j-1,1)+x(j-2,1))/2;
L(n1,2)=x(j-1,2);
h(n1-1)=L(n1,1)-L(n1-1,1);
n1=n1+1;
L(n1,1)=x(j-1,1);
L(n1,2)=3;
h(n1-1)=L(n1,1)-L(n1-1,1);
i=i+1;
end
end
end
n1=n1-1;

A=zeros(N*n1,N*n1); B=zeros(N*n1,1);
Et12=zeros(2,1); Es12=zeros(2,1); Q12=zeros(2,1);
Et12(1)=Et1;Et12(2)=Et2;
Es12(1)=Es1;Es12(2)=Es2;
Q12(1)=Q1;Q12(2)=Q2;


% Diagonal Block of matrix up to N/2.................................
for t=1:N/2
s=(t-1)*n1;
A(s+1,s+1)=-u(t)*(1/h(1))+Et12(L(1,2))-Es12(L(1,2))*wt(t)/2;
A(s+1,s+2)=u(t)*(1/h(1));
B(s+1)=Q12(L(1,2))/2;
for i=2:n1-1
if L(i,2)==3
if i==n1-1
A(s+i,s+i)=-u(t)*(1/h(i)+1/(h(i)+h(i+1)))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*(1/h(i)+1/h(i+1));
B(s+i)=u(t)*y_*(h(i)/(h(i+1)*(h(i)+h(i+1))))+Q12(L(i+1,2))/2;
else
A(s+i,s+i)=-u(t)*(1/h(i)+1/(h(i)+h(i+1)))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*(1/h(i)+1/h(i+1));
A(s+i,s+i+2)=-u(t)*(h(i)/(h(i+1)*(h(i)+h(i+1))));
B(s+i)=Q12(L(i+1,2))/2;
end
else
A(s+i,s+i-1)=-u(t)*h(i)/(h(i-1)*(h(i-1)+h(i)));
A(s+i,s+i)=u(t)*(h(i)-h(i-1))/(h(i)*h(i-1))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*h(i-1)/(h(i)*(h(i-1)+h(i)));
B(s+i)=Q12(L(i,2))/2;
end
end
A(s+n1,s+n1-1)=-u(t)*h(n1)/(h(n1-1)*(h(n1-1)+h(n1)));
A(s+n1,s+n1)=u(t)*(h(n1)-h(n1-1))/(h(n1)*h(n1-1))+Et12(L(n1,2))-Es12(L(n1,2))*wt(t)/2;
B(s+n1)=-u(t)*y_*h(n1-1)/(h(n1)*(h(n1-1)+h(n1)))+Q12(L(n1,2))/2;
% Blocks from N/2 to N........................................
a=0;
for p=1:N/2
S=(N/2+p-1)*n1;
for i=2:n1
if L(i,2)==3
A(s+i,S+i-1)=-Es12(L(i+1,2))*wt(N/2+p)/2;
else
A(s+i,S+i-1)=-Es12(L(i,2))*wt(N/2+p)/2;
end
end
a=a+(Es12(L(1,2))*wt(N/2+p)*yo/2);
end
B(s+1)=B(s+1)+a;
end
% Diagonal Block of matrix from N/2+1 to N.........................
for t=N/2+1:N
s=(t-1)*n1;
A(s+1,s+1)=u(t)*(h(2)-h(1))/(h(2)*h(1))+Et12(L(1,2))-Es12(L(1,2))*wt(t)/2;
A(s+1,s+1+1) = u(t)*h(1)/(h(2)*(h(1)+h(2)));
B(s+1)=u(t)*yo*h(2)/(h(1)*(h(1)+h(2)))+Q12(L(1,2))/2;
for i=2:n1-1
if L(i+1,2)==3
if i==2
A(s+i,s+i)=u(t)*(1/h(i)+1/(h(i)+h(i-1)))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i-1)=-u(t)*(1/h(i)+1/h(i-1));
B(s+i)=-u(t)*yo*(h(i)/(h(i-1)*(h(i)+h(i-1))))+Q12(L(i,2))/2;
else
A(s+i,s+i)=u(t)*(1/h(i)+1/(h(i)+h(i-1)))+Et12(L(i,2))-Es12(L(i,2))*wt(t)/2;
A(s+i,s+i-1)=-u(t)*(1/h(i)+1/h(i-1));
A(s+i,s+i-2)=u(t)*(h(i)/(h(i-1)*(h(i)+h(i-1))));
B(s+i)=Q12(L(i,2))/2;
end
else
A(s+i,s+i-1)=-u(t)*h(i+1)/(h(i)*(h(i)+h(i+1)));
A(s+i,s+i)=u(t)*(h(i+1)-h(i))/(h(i+1)*h(i))+Et12(L(i+1,2))-Es12(L(i+1,2))*wt(t)/2;
A(s+i,s+i+1)=u(t)*h(i)/(h(i+1)*(h(i)+h(i+1)));
B(s+i)=Q12(L(i+1,2))/2;
end
end
A(s+n1,s+n1)=u(t)*(1/h(n1))+Et12(L(n1,2))-Es12(L(n1,2))*wt(t)/2;
A(s+n1,s+n1-1)=-u(t)*(1/h(n1));
B(s+n1)=Q12(L(n1,2))/2;
% Blocks from 1 to N/2........................................
a=0;
for p=1:N/2
S=(p-1)*n1;
for i=1:n1-1
if L(i+1,2)==3
A(s+i,S+i+1)=-Es12(L(i,2))*wt(p)/2;
else
A(s+i,S+i+1)=-Es12(L(i+1,2))*wt(p)/2;
end
end
a=a+(Es12(L(n1,2))*wt(p)*y_/2);
end
B(s+n1)=B(s+n1)+a;
end

Z=A\B; % Solving for angular flux.

return
end

+ 143
- 0
Vanilla MCode/periodic_benchmark.m View File

@@ -0,0 +1,143 @@
%THIS CODE GENERATES ENSEMBLE-AVERAGED BENCHMARK RESULTS FOR THE
%STEADY-STATE, MONOENERGETIC TRANSPORT EQUATION IN A PERIODIC MEDIUM
%COMPOSED OF TWO MATERIALS WITH ISOTROPIC SCATTERING AND ISOTROPIC SOURCE
%IN ROD GEOMETRY. THE TOTAL NUMBER OF REALIZATIONS IS DEFINED BY THE
%SPATIAL DISCRETIZATION.

%THIS CODE CALLS THE SOLVER ROUTINE "SN_per_bench_solver", USING 2-POINT CENTRAL
%DIFFERENCING (ORDER H^2).

clear all
clc

%------------------------------------------------------------
%INPUTS
T= 20; % total length of the system
n= 2560; % # of points (discretization)

yo=0.; % left boundary condition
y_=0.; % right boundary condition

m1= 1; % thickness of material 1 layers
m2= 1; % thickness of material 2 layers

Et1= 1.0; % total cross section Sigma_t1 of material 1
cc= 0.5; % Scattering Ratio c1 of material 1
Q1= 1.0; % homogeneous isotropic Source of material 1

Et2=0.; % total cross section Sigma_t2 of material 2
cc2= 0.; % Scattering Ratio c2 of material 2
Q2= 0.; % homogeneous isotropic Source of material 2
%------------------------------------------------------------
%------------------------------------------------------------

Es1=cc*Et1;
Ea1= Et1-Es1;
Es2=cc2*Et2;
Ea2= Et2-Es2;

%weights and directions
N=2;
wt(1)= 1;
wt(2)=1;
u(1)=-1;
u(2)=1;

a=1;
reflec=0;reflec2=0;
transm=0;transm2=0;
SF=zeros(n+1,1);
SF2=zeros(n+1,1);
cond=0;

%MAIN LOOP
total = (m1+m2)/(T/n);
while(a<total+1)
fprintf('Problem %d of %d\n', a, total);
[Z,extra,n1,B] = SN_per_bench_solver(T,m1,m2,n,N,Es1,Es2,Et1,Et2,yo,y_,Q1,Q2,u,wt,a);
% Adjusting points..........................
X=zeros(n*N,1);
for i=1:N/2
X((i-1)*n+1)=Z((i-1)*n1+1);
k=2;
for j=2:n
k=k+extra(j-1);
X((i-1)*n+j)=Z((i-1)*n1+k);
k=k+1;
end
end
for i=N/2+1:N
k=1;
for j=1:n
k=k+extra(j);
X((i-1)*n+j)=Z((i-1)*n1+k);
k=k+1;
end
end
Y=zeros(N*(n+1),1);
% Adding boundary conditions...............
i=1;
for t=1:N/2
s=(t-1);
for j=i:t*n+s
Y(j)=X(j-s);
end
Y(j+1)=y_;
i=j+2;
end
i=i-1;
for t=N/2+1:N
Y(i+1)=yo;
i=i+1;
for j=i+1:t*n+t
Y(j)=X(j-t);
end
i=j;
end
% Calculating Reflection, Transmission and Scalar Flux......
RL=0;
for t=1:N/2
s=(t-1)*n;
RL=RL+abs(wt(t)*u(t)*Y(s+t));
end
TR=0;
for t=N/2+1:N
s=(t-1)*n;
TR=TR+wt(t)*u(t)*Y(s+n+t);
end
m=n+1;
SCAL=zeros(m,1);
for t=1:N
s=(t-1)*m;
for i=1:m
SCAL(i)=SCAL(i)+wt(t)*Y(s+i);
end
end
reflec=reflec+RL;
reflec2=reflec2+(RL)^2;
transm=transm+TR;
transm2=transm2+(TR)^2;
for i=1:n+1
SF(i)=SF(i)+SCAL(i);
SF2(i)=SF2(i)+(SCAL(i))^2;
end
a=a+1;
end
a=a-1;
SF=SF./a;
SF2=SF2./a;

kk=T/n;
p=0:kk:T; % p is line along x-axis.
plot(p,SF,'r'); hold on
plot(p,SF2,'b');

save per_bench.mat


+ 32
- 0
compare.py View File

@@ -0,0 +1,32 @@
import csv
import itertools

var = "extra"

file1 = open(var + ".csv", "rb")
file2 = open("/Users/clayshieh/Documents/MATLAB/" + var + "_m.txt", "rb")

r1 = csv.reader(file1)
r2 = csv.reader(file2)
row_count1 = sum(1 for row in r1)
row_count2 = sum(1 for row in r2)
if row_count1 != row_count2:
print "Actual has " + str(row_count1) + " rows Expected has " + str(row_count2) + "rows."
file1.close()
file2.close()
file1 = open(var + ".csv", "rb")
file2 = open("/Users/clayshieh/Documents/MATLAB/" + var + "_m.txt", "rb")
reader1 = csv.reader(file1)
reader2 = csv.reader(file2)


row = 0
for lhs, rhs in zip(reader1, reader2):
column = 0
for lh, rh in zip(lhs, rhs):
if abs(float(lh) - float(rh)) >= 1e-10:
print "Actual: " + str(lh) + " Expected: " + str(rh) + " at: (" + str(row) + "," + str(column) + ")"
column += 1

row += 1
print row

+ 202
- 0
csv/A.csv
File diff suppressed because it is too large
View File


+ 202
- 0
csv/B.csv View File

@@ -0,0 +1,202 @@
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
5.000000000000000000e-01
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
5.000000000000000000e-01
5.000000000000000000e-01

+ 102
- 0
csv/L.csv View File

@@ -0,0 +1,102 @@
0.000000000000000000e+00,1.000000000000000000e+00
2.000000000000000111e-01,1.000000000000000000e+00
4.000000000000000222e-01,1.000000000000000000e+00
6.000000000000000888e-01,1.000000000000000000e+00
8.000000000000000444e-01,3.000000000000000000e+00
1.000000000000000000e+00,2.000000000000000000e+00
1.200000000000000178e+00,2.000000000000000000e+00
1.400000000000000133e+00,2.000000000000000000e+00
1.600000000000000089e+00,2.000000000000000000e+00
1.800000000000000044e+00,3.000000000000000000e+00
2.000000000000000000e+00,1.000000000000000000e+00
2.200000000000000178e+00,1.000000000000000000e+00
2.400000000000000355e+00,1.000000000000000000e+00
2.600000000000000089e+00,1.000000000000000000e+00
2.800000000000000266e+00,2.000000000000000000e+00
3.000000000000000000e+00,2.000000000000000000e+00
3.200000000000000178e+00,2.000000000000000000e+00
3.400000000000000355e+00,2.000000000000000000e+00
3.600000000000000089e+00,2.000000000000000000e+00
3.800000000000000266e+00,1.000000000000000000e+00
4.000000000000000000e+00,1.000000000000000000e+00
4.200000000000000178e+00,1.000000000000000000e+00
4.400000000000000355e+00,1.000000000000000000e+00
4.600000000000000533e+00,1.000000000000000000e+00
4.800000000000000711e+00,2.000000000000000000e+00
5.000000000000000000e+00,2.000000000000000000e+00
5.200000000000000178e+00,2.000000000000000000e+00
5.400000000000000355e+00,2.000000000000000000e+00
5.600000000000000533e+00,2.000000000000000000e+00
5.800000000000000711e+00,1.000000000000000000e+00
6.000000000000000000e+00,1.000000000000000000e+00
6.200000000000000178e+00,1.000000000000000000e+00
6.400000000000000355e+00,1.000000000000000000e+00
6.600000000000000533e+00,1.000000000000000000e+00
6.800000000000000711e+00,2.000000000000000000e+00
7.000000000000000000e+00,2.000000000000000000e+00
7.200000000000000178e+00,2.000000000000000000e+00
7.400000000000000355e+00,2.000000000000000000e+00
7.600000000000000533e+00,2.000000000000000000e+00
7.800000000000000711e+00,1.000000000000000000e+00
8.000000000000000000e+00,1.000000000000000000e+00
8.200000000000001066e+00,1.000000000000000000e+00
8.400000000000000355e+00,1.000000000000000000e+00
8.599999999999999645e+00,1.000000000000000000e+00
8.800000000000000711e+00,3.000000000000000000e+00
9.000000000000000000e+00,2.000000000000000000e+00
9.200000000000001066e+00,2.000000000000000000e+00
9.400000000000000355e+00,2.000000000000000000e+00
9.600000000000001421e+00,2.000000000000000000e+00
9.800000000000000711e+00,3.000000000000000000e+00
1.000000000000000000e+01,1.000000000000000000e+00
1.020000000000000107e+01,1.000000000000000000e+00
1.040000000000000036e+01,1.000000000000000000e+00
1.060000000000000142e+01,1.000000000000000000e+00
1.080000000000000071e+01,3.000000000000000000e+00
1.100000000000000000e+01,2.000000000000000000e+00
1.120000000000000107e+01,2.000000000000000000e+00
1.140000000000000036e+01,2.000000000000000000e+00
1.160000000000000142e+01,2.000000000000000000e+00
1.180000000000000071e+01,3.000000000000000000e+00
1.200000000000000000e+01,1.000000000000000000e+00
1.220000000000000107e+01,1.000000000000000000e+00
1.240000000000000036e+01,1.000000000000000000e+00
1.260000000000000142e+01,1.000000000000000000e+00
1.280000000000000071e+01,3.000000000000000000e+00
1.300000000000000000e+01,2.000000000000000000e+00
1.320000000000000107e+01,2.000000000000000000e+00
1.340000000000000036e+01,2.000000000000000000e+00
1.360000000000000142e+01,2.000000000000000000e+00
1.380000000000000071e+01,3.000000000000000000e+00
1.400000000000000000e+01,1.000000000000000000e+00
1.420000000000000107e+01,1.000000000000000000e+00
1.440000000000000036e+01,1.000000000000000000e+00
1.460000000000000142e+01,1.000000000000000000e+00
1.480000000000000071e+01,3.000000000000000000e+00
1.500000000000000000e+01,2.000000000000000000e+00
1.520000000000000107e+01,2.000000000000000000e+00
1.540000000000000036e+01,2.000000000000000000e+00
1.560000000000000142e+01,2.000000000000000000e+00
1.580000000000000071e+01,3.000000000000000000e+00
1.600000000000000000e+01,1.000000000000000000e+00
1.619999999999999929e+01,1.000000000000000000e+00
1.640000000000000213e+01,1.000000000000000000e+00
1.660000000000000142e+01,1.000000000000000000e+00
1.680000000000000071e+01,3.000000000000000000e+00
1.700000000000000000e+01,2.000000000000000000e+00
1.719999999999999929e+01,2.000000000000000000e+00
1.740000000000000213e+01,2.000000000000000000e+00
1.760000000000000142e+01,2.000000000000000000e+00
1.780000000000000071e+01,3.000000000000000000e+00
1.800000000000000000e+01,1.000000000000000000e+00
1.819999999999999929e+01,1.000000000000000000e+00
1.840000000000000213e+01,1.000000000000000000e+00
1.860000000000000142e+01,1.000000000000000000e+00
1.880000000000000071e+01,3.000000000000000000e+00
1.900000000000000000e+01,2.000000000000000000e+00
1.920000000000000284e+01,2.000000000000000000e+00
1.940000000000000213e+01,2.000000000000000000e+00
1.960000000000000142e+01,2.000000000000000000e+00
1.980000000000000071e+01,3.000000000000000000e+00
1.989999999999999858e+01,1.000000000000000000e+00
2.000000000000000000e+01,3.000000000000000000e+00

+ 101
- 0
csv/SCAL.csv View File

@@ -0,0 +1,101 @@
9.875527027155333801e-03
9.880415406702709735e-03
9.885205023681455441e-03
9.889895873937569123e-03
9.894487962810083817e-03
9.898981286120364653e-03
9.903375849182693633e-03
9.907671647793802813e-03
9.911868687243228365e-03
9.915966963303065804e-03
9.919966481238108938e-03
9.923867236795811536e-03
9.927669235216230251e-03
9.931372472222175368e-03
9.934976953028966384e-03
9.938482673334771839e-03
9.941889638330179274e-03
9.945197843688710279e-03
9.948407294576213505e-03
9.951517986641567060e-03
9.954529925025892845e-03
9.957443105353416812e-03
9.960257532740535852e-03
9.962973202786820290e-03
9.965590120583945472e-03
9.968108281706824364e-03
9.970527691222415972e-03
9.972848344680970700e-03
9.975070247124731213e-03
9.977193394079288818e-03
9.979217790562169843e-03
9.981143432074301297e-03
9.982970323608501839e-03
9.984698460641034182e-03
9.986327848139995439e-03
9.987858481556996168e-03
9.989290365835417143e-03
9.990623496402199419e-03
9.991857878176019572e-03
9.992993506559149156e-03
9.994030386445560549e-03
9.994968513212850597e-03
9.995807891730292688e-03
9.996548517350808960e-03
9.997190394918975542e-03
9.997733519763025989e-03
9.998177896702854783e-03
9.998523521042005160e-03
9.998770397575677815e-03
9.998918521582748214e-03
9.998967897833700713e-03
9.998918521582748214e-03
9.998770397575674346e-03
9.998523521042012099e-03
9.998177896702849579e-03
9.997733519763029458e-03
9.997190394918975542e-03
9.996548517350808960e-03
9.995807891730296157e-03
9.994968513212847128e-03
9.994030386445560549e-03
9.992993506559142217e-03
9.991857878176017838e-03
9.990623496402192480e-03
9.989290365835417143e-03
9.987858481556992699e-03
9.986327848139997174e-03
9.984698460641030712e-03
9.982970323608501839e-03
9.981143432074301297e-03
9.979217790562164639e-03
9.977193394079283614e-03
9.975070247124727743e-03
9.972848344680962027e-03
9.970527691222415972e-03
9.968108281706815690e-03
9.965590120583945472e-03
9.962973202786811616e-03
9.960257532740535852e-03
9.957443105353406404e-03
9.954529925025892845e-03
9.951517986641556651e-03
9.948407294576208301e-03
9.945197843688701606e-03
9.941889638330175805e-03
9.938482673334764900e-03
9.934976953028966384e-03
9.931372472222164960e-03
9.927669235216226781e-03
9.923867236795802863e-03
9.919966481238107203e-03
9.915966963303053661e-03
9.911868687243231835e-03
9.907671647793790670e-03
9.903375849182700572e-03
9.898981286120350775e-03
9.894487962810090756e-03
9.889895873937553511e-03
9.885205023681464115e-03
9.880415406702690653e-03
9.875527027155345944e-03

+ 101
- 0
csv/SF.csv View File

@@ -0,0 +1,101 @@
8.279162354307141314e-01
9.058144003547491385e-01
9.814420386864097789e-01
1.044457443180543565e+00
1.108430775361605392e+00
1.164536576040450244e+00
1.229874438537713166e+00
1.281545020903052556e+00
1.337296461900192579e+00
1.379213218077901981e+00
1.427232463527305484e+00
1.459554218814571813e+00
1.494493903590228046e+00
1.531075786431060237e+00
1.556798002169393014e+00
1.591352936621466041e+00
1.615995398037212594e+00
1.644922185135466508e+00
1.668604691365689119e+00
1.690979941635617934e+00
1.713207623984341677e+00
1.729528718755995342e+00
1.747946242466788647e+00
1.762520152861067002e+00
1.778275902164144995e+00
1.791827891671982087e+00
1.805400699794008856e+00
1.818005775943044799e+00
1.828990549367728091e+00
1.840217858003180051e+00
1.850505289593356029e+00
1.858488751029768959e+00
1.866857268445507589e+00
1.873739428495174053e+00
1.880834871738611636e+00
1.886876321823361069e+00
1.892805461201894746e+00
1.898605159383951246e+00
1.903342947086712034e+00
1.908435147992229020e+00
1.912887663762121715e+00
1.915572644024085447e+00
1.918827909617829786e+00
1.920587244825601614e+00
1.923326515786471402e+00
1.924179858516978925e+00
1.926060902995682556e+00
1.927906162135200718e+00
1.928397901714244300e+00
1.929888687777889800e+00
1.929501187882246116e+00
1.929581336838748218e+00
1.928203273345603819e+00
1.926777725272750486e+00
1.925252666860237882e+00
1.922405238411911910e+00
1.920808625310032713e+00
1.918757825977825959e+00
1.916027340556965441e+00
1.914371296486949259e+00
1.909876596817369432e+00
1.907154985037915917e+00
1.900827044667468879e+00
1.895761684486172882e+00
1.889203455427365785e+00
1.881222296836722041e+00
1.875338851804557505e+00
1.868347199244248191e+00
1.861017069270422652e+00
1.855355020282099421e+00
1.844487976503920379e+00
1.837560354859859801e+00
1.823086749031125553e+00
1.811798284625304900e+00
1.796870691741520476e+00
1.779720438165997454e+00
1.766560242167598771e+00
1.751073652280282555e+00
1.734868994957039945e+00
1.722737896145584147e+00
1.699588700333208191e+00
1.685184329229693079e+00
1.658710560236359655e+00
1.636458690026223461e+00
1.605379025347835498e+00
1.578060114465184682e+00
1.544194887648407954e+00
1.517228981872852156e+00
1.488168035957224911e+00
1.451838810683560244e+00
1.418525012287912501e+00
1.370527443091987596e+00
1.328611040635534923e+00
1.269800207621274435e+00
1.211472571374244467e+00
1.151287784965064009e+00
1.086001586877506586e+00
1.035757101041327788e+00
9.704514977999247893e-01
9.025006727015659758e-01
8.274087973889836523e-01

+ 200
- 0
csv/X.csv View File

@@ -0,0 +1,200 @@
8.237236283639602918e-01
8.472821726185544300e-01
8.647913047535317199e-01
8.821818349372271273e-01
8.950422855233854946e-01
8.950422855233857167e-01
8.950422855233857167e-01
8.950422855233858277e-01
8.950422855233857167e-01
8.950422855233858277e-01
9.084492366422537435e-01
9.231958808852069875e-01
9.265993846872848660e-01
9.452051467178449462e-01
9.388774835072988267e-01
9.452051467178449462e-01
9.388774835072988267e-01
9.452051467178449462e-01
9.388774835072988267e-01
9.452051467178452793e-01
9.511555823273126764e-01
9.584472360253387668e-01
9.595261277335117578e-01
9.683651042148593291e-01
9.646587633583918464e-01
9.683651042148598842e-01
9.646587633583917354e-01
9.683651042148598842e-01
9.646587633583918464e-01
9.683651042148597732e-01
9.697913989832721571e-01
9.732213890787574373e-01
9.725073465268140316e-01
9.759353850689560517e-01
9.730238817925007666e-01
9.759353850689561627e-01
9.730238817925004335e-01
9.759353850689561627e-01
9.730238817925003225e-01
9.759353850689561627e-01
9.735404170581873906e-01
9.747990426701877986e-01
9.719401856885295787e-01
9.716466236850345162e-01
9.680951691739537734e-01
9.680951691739538845e-01
9.680951691739539955e-01
9.680951691739538845e-01
9.680951691739539955e-01
9.680951691739538845e-01
9.650510124632859510e-01
9.613392314216322454e-01
9.568344043699981150e-01
9.514904321830410794e-01
9.451645486263099416e-01
9.451645486263099416e-01
9.451645486263100526e-01
9.451645486263100526e-01
9.451645486263100526e-01
9.451645486263100526e-01
9.377144708205034096e-01
9.290938020670312936e-01
9.190020638221960692e-01
9.073505596731151757e-01
8.938098219296640723e-01
8.938098219296639613e-01
8.938098219296639613e-01
8.938098219296639613e-01
8.938098219296640723e-01
8.938098219296641833e-01
8.780920548282996618e-01
8.600939511442725616e-01
8.391842215944969041e-01
8.151855964504228780e-01
7.874111260882538099e-01
7.874111260882539209e-01
7.874111260882540320e-01
7.874111260882540320e-01
7.874111260882540320e-01
7.874111260882540320e-01
7.552783221392910251e-01
7.185734172702177291e-01
6.760070809326180763e-01
6.272215818337982807e-01
5.708164062005556261e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.056124386204988719e-01
4.311746447700428586e-01
3.448873248204227249e-01
2.460268549211316047e-01
1.317531970059818425e-01
1.317531970059818702e-01
1.317531970059818702e-01
1.317531970059818702e-01
1.317531970059818702e-01
1.317531970059818702e-01
1.311697539599515072e-01
2.453772910738699631e-01
3.440356971131438013e-01
4.303847654336496187e-01
4.303847654336496187e-01
4.303847654336497297e-01
4.303847654336496742e-01
4.303847654336497297e-01
4.303847654336496742e-01
4.438117563085469119e-01
5.880861622053110693e-01
5.597054957354743454e-01
7.128344519533966750e-01
6.403756748212394712e-01
7.128344519533961199e-01
6.403756748212392491e-01
7.128344519533961199e-01
6.403756748212394712e-01
7.128344519533965640e-01
7.210458539070050410e-01
7.916362540140261528e-01
7.793997013053314271e-01
8.537689563957779892e-01
8.201055248080839633e-01
8.537689563957778782e-01
8.201055248080834081e-01
8.537689563957778782e-01
8.201055248080834081e-01
8.537689563957775452e-01
8.608113483108363884e-01
8.925046918008538999e-01
8.903820796784561731e-01
9.226408025499989174e-01
9.111833774203520475e-01
9.226408025499990284e-01
9.111833774203517144e-01
9.226408025499990284e-01
9.111833774203517144e-01
9.226408025499991394e-01
9.319846751622474779e-01
9.403994417071440681e-01
9.473447469171228930e-01
9.533900362008603802e-01
9.584923984253679308e-01
9.584923984253679308e-01
9.584923984253679308e-01
9.584923984253679308e-01
9.584923984253679308e-01
9.584923984253679308e-01
9.627124149130731334e-01
9.661837751977747635e-01
9.689912054959040066e-01
9.711698539860037505e-01
9.727892925184066231e-01
9.727892925184066231e-01
9.727892925184065120e-01
9.727892925184066231e-01
9.727892925184066231e-01
9.727892925184066231e-01
9.738508780542949328e-01
9.744054761841683954e-01
9.744386154057476102e-01
9.739740979446640523e-01
9.729814419896590794e-01
9.729814419896594124e-01
9.729814419896591904e-01
9.729814419896594124e-01
9.729814419896591904e-01
9.729814419896593014e-01
9.714348723388127604e-01
9.693601857708454839e-01
9.666362117219863270e-01
9.632877444136985767e-01
9.591684480429191195e-01
9.591684480429193416e-01
9.591684480429193416e-01
9.591684480429193416e-01
9.591684480429193416e-01
9.591684480429194526e-01
9.542120545982384350e-01
9.484326638773770135e-01
9.415395971620468263e-01
9.335714928220242292e-01
9.241903074988199185e-01
9.241903074988198075e-01
9.241903074988200295e-01
9.241903074988198075e-01
9.241903074988198075e-01
9.241903074988198075e-01
9.132549301666330610e-01
9.007750723108800539e-01
8.861398729503729976e-01
8.694218429078111043e-01
8.499160055701423522e-01
8.499160055701422412e-01
8.499160055701422412e-01
8.499160055701422412e-01
8.499160055701422412e-01
8.499160055701422412e-01
8.274037375231615421e-01

+ 202
- 0
csv/Y.csv View File

@@ -0,0 +1,202 @@
8.237236283639602918e-01
8.472821726185544300e-01
8.647913047535317199e-01
8.821818349372271273e-01
8.950422855233854946e-01
8.950422855233857167e-01
8.950422855233857167e-01
8.950422855233858277e-01
8.950422855233857167e-01
8.950422855233858277e-01
9.084492366422537435e-01
9.231958808852069875e-01
9.265993846872848660e-01
9.452051467178449462e-01
9.388774835072988267e-01
9.452051467178449462e-01
9.388774835072988267e-01
9.452051467178449462e-01
9.388774835072988267e-01
9.452051467178452793e-01
9.511555823273126764e-01
9.584472360253387668e-01
9.595261277335117578e-01
9.683651042148593291e-01
9.646587633583918464e-01
9.683651042148598842e-01
9.646587633583917354e-01
9.683651042148598842e-01
9.646587633583918464e-01
9.683651042148597732e-01
9.697913989832721571e-01
9.732213890787574373e-01
9.725073465268140316e-01
9.759353850689560517e-01
9.730238817925007666e-01
9.759353850689561627e-01
9.730238817925004335e-01
9.759353850689561627e-01
9.730238817925003225e-01
9.759353850689561627e-01
9.735404170581873906e-01
9.747990426701877986e-01
9.719401856885295787e-01
9.716466236850345162e-01
9.680951691739537734e-01
9.680951691739538845e-01
9.680951691739539955e-01
9.680951691739538845e-01
9.680951691739539955e-01
9.680951691739538845e-01
9.650510124632859510e-01
9.613392314216322454e-01
9.568344043699981150e-01
9.514904321830410794e-01
9.451645486263099416e-01
9.451645486263099416e-01
9.451645486263100526e-01
9.451645486263100526e-01
9.451645486263100526e-01
9.451645486263100526e-01
9.377144708205034096e-01
9.290938020670312936e-01
9.190020638221960692e-01
9.073505596731151757e-01
8.938098219296640723e-01
8.938098219296639613e-01
8.938098219296639613e-01
8.938098219296639613e-01
8.938098219296640723e-01
8.938098219296641833e-01
8.780920548282996618e-01
8.600939511442725616e-01
8.391842215944969041e-01
8.151855964504228780e-01
7.874111260882538099e-01
7.874111260882539209e-01
7.874111260882540320e-01
7.874111260882540320e-01
7.874111260882540320e-01
7.874111260882540320e-01
7.552783221392910251e-01
7.185734172702177291e-01
6.760070809326180763e-01
6.272215818337982807e-01
5.708164062005556261e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.708164062005557371e-01
5.056124386204988719e-01
4.311746447700428586e-01
3.448873248204227249e-01
2.460268549211316047e-01
1.317531970059818425e-01
1.317531970059818702e-01
1.317531970059818702e-01
1.317531970059818702e-01
1.317531970059818702e-01
1.317531970059818702e-01
0.000000000000000000e+00
0.000000000000000000e+00
1.311697539599515072e-01