Examples

Example 1

%Define 
l = 4;                                  
dx = 0.1;
dt = 0.01;
T = 2;
X = meshgrid(-l+dx/2:dx:l-dx/2);
Y = X.';
N = length(X);

rho0 = zeros(N,N);
rho0(X<3 & X>-3 & Y<3 & Y>-3) = 1/4;
syms W(x,y) H(x)
W(x,y) = -exp(- x^2 - y^2)/pi;
H(x) = x^3/30;

rhoR = single2d (rho0,l, W, dt, T, 'v', H);

Example 2

l = 2;
dx = 0.1;
dt = 0.01;
T = 2;
X = meshgrid(-l+dx/2:dx:l-dx/2);
Y = X.';
N = length(X);

rho0 = zeros(N,N);
rho0(X<1 & X>-1 & Y<1 & Y>-1) = 1;
syms W(x,y)
W(x,y) = x^2/2 - log(x^2 + y^2)/2 + y^2/2;

rhoR = single2d (rho0,l, W, dt, T, 'v', 0); %set diffusion coeff to 0

rhoRp = single2d (rho0,l, W, dt, T, 'v', 0.4*dx^2); %set diffusion coeff to 0.4*dx^2

Two Pulses Example

dx = 0.1;
l = 3;
m1 = 1.5;
m2 = 1;
e = 0.4*dx*dx;
T = 4;
dt = 0.002;
N = 2*l/dx;

syms x y;
W12(x,y) = (x^2+y^2)/2;
W21(x,y) = -W12(x,y);
W11(x,y) = (x^2+y^2)/2;
W22(x,y) = W11(x,y);
W.W11 = W11; W.W22 = W22; W.W21 = W21; W.W12 = W12;

X = -l+dx/2:dx:l-dx/2;
X = meshgrid(X);
Y = X.';

r1_0 = zeros(N,N);
r1_0(-1<X & X<0 & -0.5<Y & Y<0.5) = m1;
r2_0 = zeros(N,N);
r2_0(0<X & X<1 & -0.5<Y & Y<0.5) = m2;

r1 = r1_0;
r2 = r2_0;

[r1,r2] = two2d ( r1,r2,l,W ,dt, T, e,'v');

Three Pulses Example

dx = 0.1;
l = 3;
m = 1;
m1 = 1/3;
m2 = 2/3;
% e = 0;
e = 0.4*dx*dx;
nt = 2000;
dt = 0.002;
N = 2*l/dx;

syms x y H;
W12(x,y) = sqrt(x^2+y^2);
W21(x,y) = -W12(x,y);
W11(x,y) = (x^2+y^2)/2;
W22(x,y) = W11(x,y);
H(x) = 0;
V = zeros(N,N);



X = -l+dx/2:dx:l-dx/2;
X = meshgrid(X);
Y = X.';

r1_0 = zeros(N,N);
r1_0(-0.5<X & X<0.5 & -0.5<Y & Y<0.5) = m;
r2_0 = zeros(N,N);
r2_0(-1<X & X<-0.5 & -0.5<Y & Y<0.5) = m1;
r2_0(0.5<X & X<1 & -0.5<Y & Y<0.5) = m2;

r1 = r1_0;
r2 = r2_0;
r = zeros(N,N,2);
for i = 1:nt
    [r1,r2] = two2d (l, r1,r2, W11,W12,W22,W21, H, V, dt, dt, e);
    if any(r1<0 | r2<0)
        return
    end
    s = sprintf('attr_attr%03d.mat',i);
    r(:,:,1) = r1;
    r(:,:,2) = r2;
    save(s,'r');
end