Modification needed in the following code to run

조회 수: 4 (최근 30일)
MINATI PATRA
MINATI PATRA 2024년 3월 9일
편집: Torsten 2024년 3월 9일
status = mkdir('D:\ADM2024\ADM1'); cd D:\ADM2024\ADM1
filename = 'ADM1.xlsx'; d = readtable(filename); T = fillmissing(d,"previous");
%% 1st option
a = T(1,1).a; b = T.b(1); Fr = T.Fr(1); Re = T.Re(1); Pr = T.Pr(1); Rd = T.Rd(1); s = T.s(1); Q0 = T.Q0(1); p1 = T.p1(1); p2 = T.p2(1); p3 = T.p3(1);
V = [- 1, 0, 1]/1; mx = []; my = []; Cpf = 3617;rhof = 1050;kf = 0.52;sgf = 1090; Cps1 = 425;rhos1 = 2600;ks1 = 6600;sis1 = 10^6; Cps2 = 796;rhos2 = 1600;ks2 = 3000;sis2 = 10^7; Cps3 = 235;rhos3 = 10500;ks3 = 429;sis3 = 3.6.*10^7;A1 = ((1-p1).*(1-p2).*(1-p3)).^-2.5; A2 = (1-p3).*( (1-p2).*( 1-p1 + p1.*rhos1./rhof ) + p2.*rhos2./rhof ) + p3.*rhos3./rhof;C2 = ( (sis1+2.*sgf-2.*p1.*(sgf-sis1))./(sis1+2.*sgf+p1.*(sgf-sis1))).*sgf; C3 = ( (sis2+2.*C2-2.*p2.*(C2-sis2))./(sis2+2.*C2+p2.*(C2-sis2)) ).*C2; A3 = ( (sis3+2.*C3-2.*p3.*(C3-sis3))./(sis3+2.*C3+p3.*(C3-sis3)) ).*C3; A4 = (1-p1).*( (1-p2).*(1-p3 + p3.*rhos3.*Cps3./(rhof.*Cpf)) + p2.*rhos2*Cps2./(rhof.*Cpf) ) + p1.*rhos1.*Cps1./(rhof.*Cpf); B1 = ( (ks1+2.*kf-2.*p1.*(kf-ks1))./(ks1+2.*kf+p1.*(kf-ks1)) ).*kf;B2 = ( (ks2+2.*B1-2.*p2.*(B1-ks2))./(ks2+2.*B1+p2.*(B1-ks2)) ).*B1; A5 = ( (ks3+2.*B2-2.*p3.*(B2-ks3))./(ks3+2.*B2+p3.*(B2-ks3)) ).*B2;
for Re = V
for a = [-0.5 0.5]
ODE = @(x,y)[ y(2); y(3); y(4); A1*b*y(3) + Fr*y(3)^2 - A1*a*(x*y(4) + 3*y(3)) - A1*Re*( y(1)*y(4) - y(3)*y(2) ); y(6); -(Pr/(A3*(A5+4*Rd/3)))*( a*x*y(6) + Re*y(1)*y(6) ) - Q0*Pr*y(6)/(A5+4*Rd/3) ];
BC = @(ya,yb)[ya(1)-s; ya(2); ya(5)-1; yb(1)-1; yb([2;5])]; xa = -1; xb = 1; x = linspace(xa,xb,101); solinit = bvpinit(x,[0 1 0 1 0 1]); sol = bvp5c(ODE,BC,solinit); S = deval(sol,x);
fl = deval(sol,xa); fu = deval(sol,xb); Cfl = fl(3)*A1; Cfu = fu(3)*A1; Nul = fl(6)*A5; Nuu = fu(6)*A5;
set( 0,'DefaultAxesColorOrder',[1 0 0; 1 0 0;1 0 0;0 1 0; 0 1 0;0 1 0] )
h = figure(2);plot(x,S(2,:),'-','LineWidth',2); hold on,
end
end
save2word('ADM1.doc',h); savefig(h, 'Fig1.fig') % save to folder
%%%% 2nd option
a = T.a; b = T.b; Fr = T.Fr; Re = T.Re; Pr = T.Pr; Rd = T.Rd; s = T.s; Q0 = T.Q0; p1 = T.p1; p2 = T.p2; p3 = T.p3;
N = size(T,1); Cfl = zeros(N,1); Cfu = zeros(N,1); Nul = zeros(N,1);Nuu = zeros(N,1);
for k = 1:N
ODE = @(x,y)[ y(2); y(3); y(4); A1(k)*b(k)*y(3) + Fr(k)*y(3)^2 - A1(k)*a(k)*(x*y(4) + 3*y(3)) - A1(k)*Re(k)*( y(1)*y(4) - y(3)*y(2) ); y(6); -(Pr(k)/(A3(k)*(A5(k)+4*Rd(k)/3)))*( a(k)*x*y(6) + Re(k)*y(1)*y(6) ) - Q0(k)*Pr(k)*y(6)/(A5(k)+4*Rd(k)/3) ];
BC = @(ya,yb)[ya(1)-s(k); ya(2); ya(5)-1; yb(1)-1; yb([2;5])]; xa = 0; xb = 1; x = linspace(xa,xb,101); solinit = bvpinit(x,[0 1 0 1 0 1]); sol = bvp5c(ODE,BC,solinit); S = deval(sol,x);
fl = deval(sol,xa); fu = deval(sol,xb); Cfl(k) = fl(3)*A1(k); Cfu(k) = fu(3)*A1(k); Nul(k) = fl(6)*A5(k); Nuu(k) = fu(6)*A5(k);
end
T.Cfl = Cfl; T.Cfu = Cfu; T.Nul = Nul; T.Nuu = Nuu;
vars = T.Properties.VariableNames; T = removevars(T,vars(startsWith(vars,'Var')));
writetable(T,filename,'WriteMode','overwritesheet')
T = readtable(filename)
%% These codes are running individually but I want to run simultaneously to save in the folder mentioned
%% In Ist option of the code, single values are taken from excel sheet BUT in 2nd option, many values are taken
%% "return" comand may be useful
%% OR if it is possible to write a single option to solve my two cases will be GOOD

답변 (0개)

카테고리

Help CenterFile Exchange에서 Particle & Nuclear Physics에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by