FBURGERS Defines the non-per Burgers function for nonperiodic_burgers.m [f]=fburgers(tt,deltat,u0,A,dx,w,visc,uex,uex1,bc); Input : tt =time deltat = time step u0 = initial data A = matrix related to differential operator dx = LGL first derivative matrix w = LGL weights array visc = viscosity coefficient (constant > 0) uex = exact solution (uex=@(x)[uex(x)], with .*, .^, ./) uex1 = exact solution (uex=@(x)[uex(x)], with .*, .^, ./) bc = choice of boundary conditions: 1 == Dirichlet 2 == Neumann Output: f = array with evaluation of fburgers Written by Paola Gervasio $Date: 2007/04/01$
0001 function [f]=fburgers(tt,deltat,u0,A,dx,w,visc,uex,uex1,bc); 0002 % FBURGERS Defines the non-per Burgers function for nonperiodic_burgers.m 0003 % 0004 % [f]=fburgers(tt,deltat,u0,A,dx,w,visc,uex,uex1,bc); 0005 % 0006 % Input : tt =time 0007 % deltat = time step 0008 % u0 = initial data 0009 % A = matrix related to differential operator 0010 % dx = LGL first derivative matrix 0011 % w = LGL weights array 0012 % visc = viscosity coefficient (constant > 0) 0013 % uex = exact solution (uex=@(x)[uex(x)], with .*, .^, ./) 0014 % uex1 = exact solution (uex=@(x)[uex(x)], with .*, .^, ./) 0015 % bc = choice of boundary conditions: 1 == Dirichlet 0016 % 2 == Neumann 0017 % 0018 % Output: f = array with evaluation of fburgers 0019 % Written by Paola Gervasio 0020 % $Date: 2007/04/01$ 0021 % 0022 0023 np=length(u0); 0024 b=zeros(np,1); 0025 if bc ==2 0026 t=tt; 0027 uu1=uex(-1); ux1=uex1(-1); 0028 b(1)=0.5*uu1^2-visc*ux1; 0029 uu1=uex(1); ux1=uex1(1); 0030 b(np)=-0.5*uu1^2+visc*ux1; 0031 end 0032 f=(b-A*u0+0.5*dx'*diag(w)*(u0.*u0))./w; 0033 0034 return 0035