How to set this time derivative boundary condition using MOL?
13 ビュー (過去 30 日間)
古いコメントを表示
LHS = Left hand side aka ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436198/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436198/image.png)
BC = Boundary condition
Hi,
I have a system of coupled raection diffusion PDEs as such.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436243/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436248/image.png)
For my
species I have a LHS at
such as
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436213/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436198/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436223/image.png)
I am trying to solve this using the method of lines by using ODE15s solver for which I have written the function as such. But I do not know how to incorporate the
term into the script and how to assign it to be my LHS boundary condition.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1436228/image.png)
k1=0.073317274764052;
k2=1.052512778689219e-04;
tau=0.466500000000000;
tau_2=0.699700000000000;
dchi=0.100000000000000;
N=11;
tspan_2=linspace(tau, tau_2, N);
[t, CmBC] = ode15s(@(t, Cm2) BCodefun(t, Cm2, k1, k2, dchi), tspan_2, 0.9, []);
function dCdt2BC = BCodefun(t, CmBC, k1, k2, dchi)
dCdt2BC = (k1/k2).*(((CmBC).*(CmBC^2-CmBC))/dchi);
end
This gives me a 1*11 matrix (code till above should function). You can see below how I am using a multi point approximation to set a no flux BC at my left hand. I am not sure how to assign my ODE output as my left hand side BC in my MOL implementation.
% What I have been using to set a no flux boundary condition on the LHS
Cm2(1) = (-Cm2(3)+4*Cm2(2))./3;
% WHat I think I should do to set the output from my ODE solution to set my
% LHS BC
Cm2(1) = CmBC;
9 件のコメント
Torsten
2023 年 7 月 17 日
編集済み: Torsten
2023 年 7 月 17 日
Reread how the method-of-lines works to solve partial differential equations.
As I wrote you don't solve for a single unknown value of the concentration field as you seem to try with the command
[t, Cm2(1)] = ode15s(@(t, Cm2) BCodefun(t, Cm2, k1, k2, dchi), tspan_2, 1, []);
but for the complete profile of C_m_ox and C_s over the spatial domain.
That's why I wrote you have 2*N solution variables where N is the number of spatial discretization points.
As far as I know, the following PDE solver similar to pdepe supports ODEs as boundary conditions:
Maybe you want to test it for your problem.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で PDE Solvers についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!