shooting method solving compressible boundary layer equations
50 ビュー (過去 30 日間)
古いコメントを表示
Hi, i hope someone can help me. I want to find the solution to the compressible boundary layer equations, this problem is part of my thesis project, but I'm running into some problems.
here is the ODEs
here is the boundary conditions
here is the matlab code
function [x,y] = shooting
% Use fsolve to ensure the boundary function is zero. The result is the
% unknown initial condition.
opt = optimset('Display','off','TolFun',1E-20);
F = fsolve(@(F) eval_boundary(F),[0.0826,0,0,0,25.8],opt);
% Solve the ODE-IVP with the converged initial condition
[x,y] = solve_ode(F);
end
function [x,y] = solve_ode(F)
%basic value of outer flow
Te = 218.6; mach = 8.0; Pr = 0.75;
he = 1004.68 * Te; ue = mach * sqrt(1.4 * 8.29586 * Te / 0.02885);
ratio1 = ue * ue / he; cm = 110.4 / Te; ck = 110.4 / Te;
% C = sqrt(y(5))*(1.0+ratio2)/(y(5)+ratio2);
% Solve the ODE-IVP with initial condition F on [0 100] (arbitrary upper bound)
[x,y] = ode45(@(x,y) [ -y(3) * y(1) / ( sqrt(y(5)) * (1.0 + cm) / ( y(5) + cm ) );
y(1) / ( sqrt(y(5)) * (1.0 + cm) / ( y(5) + cm ) );
y(2);
-Pr * ( y(3) * y(4) / ( sqrt(y(5)) * (1.0 + ck) / ( y(5) + ck ) ) + ratio1 * y(1) * y(1) / ( sqrt(y(5)) * (1.0 + cm) / ( y(5) + cm ) ) ) ;
y(4) / ( sqrt(y(5)) * (1.0 + ck) / ( y(5) + ck ) ) ] , [0 100] , F); %solve BVP
end
function [g] = eval_boundary(F)
% Get the solution to the ODE with inital condition F
[x,y] = solve_ode(F);
% Get the function values (for BCs) at the starting/end points
y2_start = y(1,2); %f(0) = 0
y3_start = y(1,3); %f'(0) = 0
y4_start = y(1,4); %g'(0) = 0
y1_end = y(end,1); %f''(end) = 0
y2_end = y(end,2); %f'(end) = 1
y4_end = y(end,4); %g'(end) = 0
y5_end = y(end,5); %g(0) = 1
% Evaluate the boundary function
g = [
y2_start
y3_start
y4_start
% y1_end
y2_end-1
% y4_end
y5_end-1
];
end
this code is come from Mohammad A Alkhadra (https://ww2.mathworks.cn/matlabcentral/fileexchange/69310-solving-blasius-equation-with-the-shooting-method) for solving blasius boundary layer equations. I changed the equations and BCs but it can not get correct answers (the code return complex number which must be wrong).
I have checked many times for the code and equations deduction, but did not find the wrong place.
I don't know if it is because these ODEs are differential equation with variable coefficients ? this is one different point from the original code.
2 件のコメント
darova
2019 年 10 月 13 日
Equations for image and code don't look similar
First equation can be simplified to second order?
採用された回答
darova
2019 年 10 月 15 日
bvp4c should work
see attached script
7 件のコメント
darova
2019 年 10 月 16 日
Indeed, you differentiated C function in a correct way
The shape of results looks similar
What about Y axis? Maybe it's about scaling?
Mouli Bhaskar Duddupudi
2022 年 2 月 28 日
編集済み: Mouli Bhaskar Duddupudi
2022 年 2 月 28 日
I have been looking into this problem. What could be reason for Y-axis? Is it because of scaling?
その他の回答 (1 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!