Homepage Dr. Lauermann/Bison/Theory

Home Bison


System of first-order partial differential equations in matrix form:
1) one dimension, homogeneous:
f,t = Ax*f,x

Ax with real eigenvalues lambda: Matrix Lx (diagonalform)
with corresponding set of lineary independent (right) eigenvectors: Matrix Kx

then Ax is diagonalisable (with Mx:= Kx**(-1) the inverse)
Ax = Kx*Lx*Mx, or Lx= Mx*Ax*Kx

define the x-riemann variables (characteristic variables):
fx:= Mx*f, or f= Kx*fx

> reduced system in canonical form:
f,t = Kx*Lx*Mx*f,x
Mx*f,t = Lx*Mx*f,x
fx,t = Lx*fx,x ; (constant Mx in timestep)

> integrate the x-riemann variables along the characteristics dx(j)/dt= -lambda(j)
fx(t,x)= fx(t-dt,x(j)) ; x(j)= x + dt*lambda(j)

2) two dimensional, homogeneous:
f,t = Ax*f,x + Ay*f,y

Ax = Kx*Lx*Mx, or Lx= Mx*Ax*Kx
Ay = Ky*Ly*My, or Ly= My*Ay*Ky

fx:= Mx*f, or f= Kx*fx
fy:= My*f, or f= Ky*fy

> reduced system in canonical form:
f,t = Kx*Lx*Mx*f,x + Ky*Ly*My*f,y
Mx*f,t = Lx*Mx*f,x + Mx*Ky*Ly*My*f,y
fx,t = Lx*fx,x + Oxy*Ly*fy,y ; Oxy:= Mx*Ky

> integrate the x-riemann variables along the characteristics dx(j)/dt= -lambda(j)
(1) fx(t,x,y) = fx(t-dt,x(j),y) + dt/2*(Oxy*Ly*fy,y)(t-dt,x(j),y)
+ dt/2* Oxy*Ly*fy,y(t,x,y) ; scheme second order
or with f = Kx*fx
(1x) f(t,x,y) = Kx*fx(t-dt,x(j),y) + dt/2*Kx*(Oxy*Ly*fy,y)(t-dt,x(j),y)
+ dt/2*Ky*Ly*fy,y(t,x,y) <-- unknown fy,y(t,x,y)

now here is the problem with the unknown
transverse derivatives fy,y(t,x,y) !

general solution:
to eleminate the unknown transverse derivatives
> integrate f,t = Ax*f,x + Ay*f,y
= Kx*Lx*fx,x + Ky*Ly*fy,y
f(t,x,y) = f(t-dt,x,y) + dt/2*Kx*Lx*fx,x(t-dt,x,y)
+ dt/2*Kx*Lx*fx,x(t,x,y) <-- unknown fx,x(t,x,y)
+ dt/2*Ky*Ly*fy,y(t-dt,x,y)
+ dt/2*Ky*Ly*fy,y(t,x,y) <-- unknown fy,y(t,x,y)

with (1x)

dt/2*Kx*Lx*fx,x(t,x,y) = Kx*fx(t-dt,x(j),y) + dt/2*Kx*(Oxy*Ly*fy,y)(t-dt,x(j),y)
-f(t-dt,x,y) - dt/2*Kx*Lx*fx,x(t-dt,x,y)
- dt/2*Ky*Ly*fy,y(t-dt,x,y)
and also
dt/2*Ky*Ly*fy,y(t,x,y) = Ky*fy(t-dt,x,y(j)) + dt/2*Ky*(Oyx*Lx*fx,x)(t-dt,x,y(j))
-f(t-dt,x,y) - dt/2*Ky*Ly*fy,y(t-dt,x,y)
- dt/2*Kx*Lx*fx,x(t-dt,x,y)

> scheme without unknown transverse derivatives
f(t,x,y) = Kx*fx(t-dt,x(j),y) + Ky*fy(t-dt,x,y(j)) - f(t-dt,x,y)
+ dt/2*Kx*(Oxy*Ly*fy,y)(t-dt,x(j),y) + dt/2*Ky*(Oyx*Lx*fx,x)(t-dt,x,y(j))
- dt/2*Kx*Lx*fx,x(t-dt,x,y) - dt/2*Ky*Ly*fy,y(t-dt,x,y)

the derivatives of the riemann variables on the initial value surface:
dt*Lx*fx,x= fx(x(j))-fx(x), dt*Ly*fy,y= fy(y(j))-fy(y)   ; first order
in the scheme above.

> the resulting scheme is nevertheless second order, because the absolute error
is abrogated by the difference terms. This is only possible by using the
riemann variables.

3) three dimensional (and more): Its all the same with addition the z (or more) direction.

That's all. For unhomogeneous systems see my dissertation. The schemes are