Help in defining c coefficient and BCs for two coupled reaction-diffusion equations in 2d in solvepde
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
Hello,
Help in defining c coefficient for two coupled reaction-diffusion equations in 2d in solvepde. I have two equations with two dependent functions phi and mu that I'm solving between two concentric cylinders. The equations are:

so the first equation is diffusion-like and the second is Poisson-like. I am writing them as
- du1/dt-1/a^2*laplacian(u2)=0
- 0=-B/a^2*laplacian(u1)+g(u1)-u2
where u1=phi and u2=mu. The diffusion coefficients include the parameters a and B. The auxiliiary function g is g(u1)=b*u1+c*u1^3 where b (b<0) and c (c>0) are constants.
The system is to be solved in between two concentric cylinders of dimensionless radii r=1 and r=L. The boundary conditions are these:

Here phi0 and J0 are constantrs. The BCs can be written as
u1(r=L)=phi0 (Dirichlet)
u2(r=L)=b*phi0+c*phi0^3 (Dirichlet)
grad(u1)(r=L)*n=0 (Neumann)
grad(u2)(r=1)=-J0 (Neumann)
I have two questions, one for the c coefficient and one for the boundary conditions:
1. How do I define c? Currently I am using 
CA=specifyCoefficients(model,'m',0,'d',[100;0.1],'c',[0;-Ba2;1/a^2;0],'a',0,'f',@fcoeff); 
u=solvepde(model,tlist); 
I have an f function defined as
%__________________________________________
function f=fcoeff(location,state)
global b c
nr=length(location.x); % number of columns
f=zeros(2,nr); % allocate f
f(1,:)=zeros(1,nr);
f(2,:)=b*state.u(1,:)+c*state.u(1,:).^3-state.u(2,:);
end
Is this correct?
2. Regarding the boundary conditions, I have 4 edges on the outer cylinder (1:4) and 4 edges on the inner cylinder (5:8). Currently I am using 
applyBoundaryCondition(model,'dirichlet','Edge',[1,2,3,4],'u',[phi0,b*phi0+c*phi0^3]); % Dirichlet BCs at outer radius:
applyBoundaryCondition(model,'neumann','Edge',[5,6,7,8],'q',[0 0;0 0],'g',[-J0/a;0]); % Neumann BCs at inner radius:
Is this correct?
Thanks in advance,
Yoav
답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Assembly에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
