PLUTO  4.0
 All Data Structures Files Functions Variables Enumerations Macros Pages
Functions
rkc.c File Reference

Runge-Kutta-Chebyshev driver for integration of diffusion terms. More...

#include "pluto.h"

Functions

void RKC (const Data *d, Time_Step *Dts, Grid *grid)
 

Detailed Description

Take one step in the solution of the diffusion equation $ dQ/dt = F$ using Runge-Kutta-Chebyshev (RKC) method.

\[ \begin{array}{lcl} Y_0 & = & Q^n \\ \noalign{\medskip} Y_1 & = & Y_0 + \tilde{\mu}_1\tau F_0 \\ \noalign{\medskip} Y_j & = & (1 - \mu_j - \nu_j) Y_0 + \mu_j Y_{j-1} + \nu_j Y_{j-2} + \tilde{\mu}_j \tau F_{j-1} + \tilde{\gamma}_j\tau F_0 \quad \rm{for} \quad j = 2,...,s \\ \noalign{\medskip} Q^{n+1} & = & Y_s \end{array} \]

where

\[\tau = \Delta t,\, \tilde{\mu}_1 = b_1 w_1,\, \mu_j = 2 b_j \frac{w_0}{b_{j-1}}, \, \nu_j = -\frac{b_j}{b_{j-2}},\, \tilde{\mu}_j = 2 b_j \frac{w_1}{b_{j-1}},\, \tilde{\gamma}_j = -\alpha_{j-1} \tilde{\mu}_j,\, \]

\[ \alpha_j = 1 - b_j T_j(w_0),\, w_0 = 1 + \epsilon/s^2,\, w_1 = T'_s(w_0)/T''_s(w_0),\, b_j = T''_j(w_0)/(T'_j(w_0))^2,\, b0=b1=b2,\, \epsilon = 2/13 \]

Here the T's are the Chebyshev polynomial of the first kind:

\[ T_j(x) = \cos(j {\rm arccos(x)}) ,\, T_0(x) = 1,\, T_1(x)=x,\, T_j(x)=2*x*T_jm1(x) - T_jm2(x), \quad \rm{for}\quad j = 2,...,s \]

while sprad=Spectral_Radius-> 4,8,12 kappa/dx/dx (check)

Only the parabolic terms of the equations are advanced by a single step g_dt equal to the current integration time step and the number of RKC steps (Nrkc) is computed... The explicit parabolic time step is computed in the same manner as in STS.

References

Authors
P. Tzeferacos (petro.nosp@m.s.tz.nosp@m.efera.nosp@m.cos@.nosp@m.ph.un.nosp@m.ito..nosp@m.it)
A. Mignone (migno.nosp@m.ne@p.nosp@m.h.uni.nosp@m.to.i.nosp@m.t)
Date
Oct 29, 2012

Function Documentation

void RKC ( const Data d,
Time_Step Dts,
Grid grid 
)

Solve diffusion equation using Runge-Kutta-Chebyshev (RKC) method

Parameters
[in,out]dpointer to Data structure
[in,out]Dtspointer to Time_Step structure
[in]gridpointer to an array of Grid structures