next up previous
Next: The SFU code Up: Brief description of the Previous: Brief description of the

The CWI code

The CWI code was written by Verwer and his research group at CWI (see [16], for example). The moving mesh system is solved by DASSL in time. The moving mesh technique in the CWI code is due to Dorfi and Drury [4]. The spatial discretization is done by a second order nonlinear Galerkin-based method, which is reported extensively in Skeel and Berzins [14].

The CWI code was designed to solve time-dependent PDEs in one space dimension, having the general form

 \begin{displaymath}\displaystyle\sum_{k=1}^{\mbox{NPDE}}C_{j,k}(x,t,u,u_x)\frac{...
...\frac {\partial}{\partial x}(x^mR_j(x,t,u,u_x))-Q_j(x,t,u,u_x)
\end{displaymath} (1)

for j=1,...,NPDE and $x\in [x_L, x_R], t>t_0$ and $m\in {0,1,2}$, where NPDEdenotes the number of PDEs, u is the solution vector and Rj and Qj can be thought of, in special cases, as flux and source terms, respectively. The user specifies boundary conditions in the form

\begin{displaymath}\beta_j(x,t)R_j(x,t,u,u_x) = \gamma_j(x,t,u,u_x)
\end{displaymath}

at x=xL and x=xR for j=1,...,NPDE. The initial conditions are given by

\begin{displaymath}u(x,t_0) = u^0(x), \qquad x\in [x_L, x_R].
\end{displaymath}

The $u_x\dot x$ term in the moving mesh system is approximated in space by central discretization

\begin{displaymath}\frac {u_{i+1}-u_{i-1}}{x_{i+1}-x_{i-1}} \dot x_i.
\end{displaymath}

The monitor function is defined by the arclength and discretized by

\begin{displaymath}M_i = \sqrt{\alpha +
\mbox{NPDE}^{-1}\displaystyle
\sum_{j=1}^{\mbox{NPDE}}(u_{i+1}^j-u_i^j)^2/(\Delta X_i)^2}.
\end{displaymath}

The CWI code is very easy to use. The user is required to provide three routines, which define the initial conditions, boundary conditions and problem definitions respectively, by supplying the coefficient vector $\beta_j,
\gamma_j, C_{j,k}, Q_j, R_j$ and the initial value u0(x) for all of the points. The code will do the rest automatically. This code is very convenient for a new user or a new problem. However, for an experienced user, it is very hard to incorporate an existing code for non-moving grid to this package. For problems that cannot be written into general form (1), this package cannot be used. The user has no options for choosing a different monitor function or spatial discretization. The user also has little control over the adaptivity.


next up previous
Next: The SFU code Up: Brief description of the Previous: Brief description of the
Shengtai Li
1998-03-09