comparison +scheme/Burgers1d.m @ 1196:f6c571d8f22f feature/rv

Add option to discretize Burgers1d using quasi-linear form
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Wed, 07 Aug 2019 13:28:21 +0200
parents 635386c073b9
children 433c89bf19e0
comparison
equal deleted inserted replaced
1195:a4c00628a39d 1196:f6c571d8f22f
29 29
30 if (isequal(opSet, @sbp.D1Upwind)) 30 if (isequal(opSet, @sbp.D1Upwind))
31 obj.D1 = (ops.Dp + ops.Dm)/2; 31 obj.D1 = (ops.Dp + ops.Dm)/2;
32 DissOp = (ops.Dm - ops.Dp)/2; 32 DissOp = (ops.Dm - ops.Dp)/2;
33 switch pde_form 33 switch pde_form
34 case 'quasi-linear'
35 obj.D = @(v) -((spdiag(v)*obj.D1 + fluxSplitting(v)*DissOp)*v);
34 case 'skew-symmetric' 36 case 'skew-symmetric'
35 obj.D = @(v) -(1/3*obj.D1*(v.*v) + (1/3*spdiag(v)*obj.D1 + fluxSplitting(v)*DissOp)*v); 37 obj.D = @(v) -(1/3*obj.D1*(v.*v) + (1/3*spdiag(v)*obj.D1 + fluxSplitting(v)*DissOp)*v);
36 case 'conservative' 38 case 'conservative'
37 obj.D = @(v) -(1/2*obj.D1*(v.*v) + fluxSplitting(v)*DissOp*v); 39 obj.D = @(v) -(1/2*obj.D1*(v.*v) + fluxSplitting(v)*DissOp*v);
38 end 40 end
39 else 41 else
40 obj.D1 = ops.D1; 42 obj.D1 = ops.D1;
41 switch pde_form 43 switch pde_form
44 case 'quasi-linear'
45 obj.D = @(v) -(spdiag(v)*obj.D1*v);
42 case 'skew-symmetric' 46 case 'skew-symmetric'
43 obj.D = @(v) -(1/3*obj.D1*(v.*v) + 1/3*spdiag(v)*obj.D1*v); 47 obj.D = @(v) -(1/3*obj.D1*(v.*v) + 1/3*spdiag(v)*obj.D1*v);
44 case 'conservative' 48 case 'conservative'
45 obj.D = @(v) -1/2*obj.D1*(v.*v); 49 obj.D = @(v) -1/2*obj.D1*(v.*v);
46 end 50 end