19 for (
int _i = 0;
_i < _N;
_i++)
20 df[] = ((
f[] +
f[-1,0])*
u.
x[] -
21 (
f[] +
f[1,0])*
u.
x[1,0] +
22 (
f[] +
f[0,-1])*
u.
y[] -
23 (
f[] +
f[0,1])*
u.
y[0,1])/(2.*Delta);
29 for (
int _i = 0;
_i < _N;
_i++)
30 df[] = ((
u.
x[] < 0. ?
f[] :
f[-1,0])*
u.
x[] -
31 (
u.
x[1,0] > 0. ?
f[] :
f[1,0])*
u.
x[1,0] +
32 (
u.
y[] < 0. ?
f[] :
f[0,-1])*
u.
y[] -
33 (
u.
y[0,1] > 0. ?
f[] :
f[0,1])*
u.
y[0,1])/Delta;
44 double dt = Delta/(
G*
h[]);
49 double dt = Delta/
sq(
u.
x[]);
65 for (
int _i = 0;
_i < _N;
_i++) {
69 double uc =
u.
x[]*
u.
x[] +
u.
x[1,0]*
u.
x[1,0];
70 double vc =
u.
y[]*
u.
y[] +
u.
y[0,1]*
u.
y[0,1];
74 d.x[] = (
u.
x[1,0] -
u.
x[])/Delta;
76 for (
int _i = 0;
_i < _N;
_i++)
77 psi[] = (
u.
y[] -
u.
y[-1,0] +
u.
x[0,-1] -
u.
x[])/Delta;
80 for (
int _i = 0;
_i < _N;
_i++)
82 - (
G*(
h[] +
zb[]) + ke[] -
G*(
h[-1,0] +
zb[-1,0]) - ke[-1,0])/Delta
84 (
u.
y[] +
u.
y[0,1] +
u.
y[-1,0] +
u.
y[-1,1])/4.)
85 +
NU*(
u.
x[0,1] +
u.
x[0,-1] - 2.*
u.
x[])/
sq(Delta)
86 +
NU*(
d.x[] -
d.x[-1,0])/Delta;
92 vector u = {
f[0],
f[1]}, du = {df[0], df[1]};
106 for (
int _i = 0;
_i < _N;
_i++)
125 for (
int _i = 0;
_i < _N;
_i++)
128 for (
int _i = 0;
_i < _N;
_i++)
double dtmax
The timestep is computed using the CFL condition on the face velocity field.
trace double timestep(void)
trace void momentum(vector u, scalar h, vector du)
trace void advection_upwind(scalar f, vector u, scalar df)
void event_init(void)
Event: init (i = 0)
void event_defaults(void)
Event: defaults (i = 0)
trace void advection_centered(scalar f, vector u, scalar df)
static number sq(number x)
scalar f[]
The primary fields are:
double(* update)(scalar *evolving, scalar *updates, double dtmax)
static void(* advance)(scalar *output, scalar *input, scalar *updates, double dt)
void runge_kutta(scalar *ul, double t, double dt, void(*Lu)(scalar *ul, double t, scalar *kl), int order)
The runge_kutta() function implements the classical first- (Euler), second- and fourth-order Runge–Ku...
void timer_print(timer t, int i, size_t tnc)
This function writes timing statistics on standard output.