% Numerical solution of ternary FRAP model with solvent, bleached and % unbleached species. Model is assumed to be equilibrated % (bleached+unbleached=const.=pt). Then bleached species initial % conditions are introduced. Integration of model via pdepe. %% Solve pde x = linspace(49, 80, 700); t = linspace(0, 100, 1000); sol = pdepe(0, @flory_hugg_a, @flory_ic, @flory_bc, x, t); %% Plotting figure(1); hold on; for i = 1:500 cla; xlim([49, 53]); ylim([0, 1.5]); plot(x, phi_tot(x, -50, 0.25)); plot(x, sol(i, :)); pause(0.01); end %% Plot and check derivatives of pt figure; hold on; x = linspace(40, 60, 100); plot(x, phi_tot(x, -50, 0.25)); plot(x, gradient_analytical(x, -50, 0.25)); %% Function definitions for pde solver function [c, f ,s] = flory_hugg_a(x, t, u, dudx) % Solve with full ternary model. Analytical derivatives. % pt ... phi_tot % gra_a ... analytical gradient of phi_tot pt = phi_tot(x, -50, 0.25); gra_a = gradient_analytical(x, -50, 0.25); c = 1/100; f = (1.3-pt)/pt*(pt*dudx-u*gra_a); s = 0; end function u0 = flory_ic(x) if x<50 u0 = 0.0; else u0 = 0.3; end % u0 = 0.3; % u0 = phi_tot(x, -50, 1); end function [pl,ql,pr,qr] = flory_bc(xl,ul,xr,ur,t) pl = 0; ql = 1; % % No flux % pr = 0;%ur - 0.01; % qr = 1; % Dirichlet BC pr = ur- 0.3; qr = 0; end function p = phi_tot(x, a, b) p = (tanh(-(x+a)/b)+1)/2+0.3; end function grad = gradient_analytical(x, a, b) grad = -(1-tanh(-(x+a)/b).^2)*1/b*0.5; end