Mercurial > repos > public > sbplib
annotate +time/+rk/get_rk4_time_step.m @ 1012:1e437c9e5132 feature/advectionRV
Create residual viscosity package +rv and generalize the ResidualViscosity class
- Generalize residual viscosity, by passing user-defined flux and calculating the time derivative outside of the update.
- Create separate RungekuttaRV specifically using interior RV updates
- Separate the artifical dissipation operator from the scheme AdvectionRV1D so that the same scheme can be reused for creating the diff op used by the ResidualViscosity class
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Wed, 05 Dec 2018 13:44:10 +0100 |
parents | c6fcee3fcf1b |
children | 1a265a376b36 |
rev | line source |
---|---|
0 | 1 % Calculate the size of the largest time step given the largest evalue for a operator with pure imaginary e.values. |
2 function k = get_rk4_time_step(lambda,l_type) | |
3 default_arg('l_type','complex') | |
4 | |
5 rad = abs(lambda); | |
6 if strcmp(l_type,'real') | |
7 % Real eigenvalue | |
8 % kl > -2.7852 | |
9 k = 2.7852/rad; | |
10 | |
11 elseif strcmp(l_type,'imag') | |
12 % Imaginary eigenvalue | |
13 % |kl| < 2.8284 | |
14 k = 2.8284/rad; | |
15 elseif strcmp(l_type,'complex') | |
16 % |kl| < 2.5 | |
17 k = 2.5/rad; | |
18 else | |
19 error('l_type must be one of ''real'',''imag'' or ''complex''.') | |
20 end | |
21 end |