-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTimeMarch.m
31 lines (24 loc) · 1.29 KB
/
TimeMarch.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
% Return u_n+1 according to the specified equation and time marching
% and differentiation schemes
function [uNext] = TimeMarch(u, SizeU, dx, dt, Velocity, Viscosity, ...
TimeMarchingSchemeIdentifier, RHSIdentifier, ...
DifferentiationSchemeIdentifier)
% Use the specified time marching scheme
switch TimeMarchingSchemeIdentifier
case 'euler'
uNext = u + dt * RHS(u, SizeU, dx, Velocity, Viscosity, ...
RHSIdentifier, DifferentiationSchemeIdentifier);
case 'rk2'
Stage1 = u + dt * RHS(u, SizeU, dx, Velocity, Viscosity, ...
RHSIdentifier, DifferentiationSchemeIdentifier);
uNext = 0.5 * (u + Stage1 + dt * RHS(Stage1, SizeU, dx, Velocity, Viscosity, ...
RHSIdentifier, DifferentiationSchemeIdentifier) );
case 'rk4'
% ************************************************
% runge kutta 4 ordem aqui
% ************************************************
% In case the user doesn't choose an implemented time marching scheme
otherwise
error(['Time marching scheme ', TimeMarchingSchemeIdentifier, ...
' not implemented!']);
end