Model reaction diffusion brusselator 2d matlab

AI Thread Summary
The discussion revolves around troubleshooting a MATLAB implementation of the 2D Brusselator model for reaction-diffusion equations. The user is facing issues with initial conditions leading to NaN values for variable u at certain time steps. A mistake in the indexing of the initial conditions was identified, but problems persist at later time points. Suggestions include improving code efficiency by utilizing array operations instead of for loops and refining the handling of boundary conditions. Overall, the focus is on resolving the numerical issues in the MATLAB code for accurate simulation results.
RiseFox
Messages
3
Reaction score
0
Moved from a technical forum, so homework template missing
Hello, I have a project (model reaction diffusion brusselator 2d)
∂u/∂t=A+u^2v-(B−1)u+D1((∂^2)u/∂(x^2)+(∂^2)u/∂(y^2))
∂v/∂t=Bu−u^2v+D2((∂^2)v/∂(x^2)+(∂^2)v/∂(y^2))

initial conditions:
u(x,y,0) = 0.5 + y,
v(x,y,0) = 1 + 5x.

boundary conditions:
∂u/∂n = 0, ∂v/∂t = 0

n-external normal to the boundary

for numerical experiment:
A=1;B=3.4; D1=D2=2*10-3

I attached .zip with MATLAB code, but it is not working properly for some reason (( pls help me with code (problems with initial conditions)
 

Attachments

Physics news on Phys.org
RiseFox said:
I attached .zip with MATLAB code, but it is not working properly for some reason (( pls help me with code (problems with initial conditions)
You'll have to describe the problem better than that.
 
ok, I already found one mistake there was to be no x, y and i, j
Code:
for i =1:n
    for j =1:n
        u(i,j) = 0.5 + i;
        v(i,j) = 1 + 5*j;
    end
end

at t = 0
Screenshot_10.png
is good,
but in other cases(t=0.25; t=0.75),
my u = NaN go in and I'm stuck at this point
Screenshot_7.png
 
Why is t_max = 0?

While not related to your problem, I must say that your program if not efficient. In the brusselator functions, you should use array operations, not for loops. In laplacian, you should not have a series of ifs for border cases. Use instead a main loop dealing with core points, and then treat the border values independently.
 
I realized now, even if I knew how to write, since I do not use matlab, and perform calculations have it
 

Similar threads

Replies
1
Views
2K
Replies
1
Views
2K
Replies
1
Views
1K
Replies
6
Views
2K
Replies
1
Views
2K
Replies
10
Views
2K
Replies
1
Views
2K
Replies
1
Views
3K
Back
Top