
`VLUGR3: A Vectorizable Adaptive Grid Solver for PDEs in 3D. Part II.
Code Description' by J.G. Blom and J.G. Verwer.

This code solves systems of PDEs of the type
         F(t,x,y,z,U,Ut,Ux,Uy,Uz,Uxx,Uyy,Uzz,Uxy,Uxz,Uyz)=0
with boundary conditions
         B(t,x,y,z,U,Ut,Ux,Uy,Uz)=0
and initial values
         U(t0,x,y,z)=U0
on a 3D domain bounded by right-angled polyhedrons.

In space Local Uniform Grid Refinement is applied to resolve local
sharp gradients in the solution. For the time integration the
implicit BDF2 method is used with variable stepsizes.



Description of contents of source code files
--------------------------------------------
(Both single precision and double precision available)

VLUGR3.f        Main module, contains documentation

ILUBSn.f        ILU decomposition and backsolve
                for arbitrary number of PDE components
ILUBS1.f        ILU decomposition and backsolve
                for optimal vector performance for PDE with 1 component
ILUBS2.f        ILU decomposition and backsolve
                for optimal vector performance for PDE with 2 components
ILUBS3.f        ILU decomposition and backsolve
                for optimal vector performance for PDE with 3 components

USER.f          Default modules that can be replaced by user's own
                (see description in paper)

blas.f          BLAS modules

EXMPL.f         Calling program for the first time interval of the example
                in the paper
EXMPLR.f        Calling program for the second time interval of the example
                in the paper
ProbI?.f        Calling programs for the first two problems in the companion
                paper `VLUGR3: A Vectorizable Adaptive Grid Solver for PDEs
                in 3D. I. Algorithmic Aspects and Applications'

PRTSOL.f        Program to print out solution from file generated by the
                DUMP routine
WRTUNI.f        Program that reads the file generated by the DUMP routine
                and writes the (interpolated) solution on a uniform grid
                of a specified grid level and the maximum used grid level
                in each point to file.



Plot.m          Matlab plotting routine to plot the data generated by
                WRTUNI.f



How to use the solver:
----------------------
Compile and link the files
	EXMPL.f
	USER.f (only the SUBROUTINE DERIVF)
	VLUGR3.f
	ILUBSn.f
	blas.f (if the BLAS library is not available on the platform)
The module blas.f contains, a.o., the functions I1MACH and R/D1MACH which set
machine-dependent values. These functions need to be adapted to the platform.

The results and integration information can be found in the files
	EXMPL_28
	EXMPL_RunInfo
	EXMPL_output
A file DUMP is created that contains all the necessary information to
restart the integration on the second time interval.


For the second run one should compile and link the files
        EXMPLR.f
        USER.f (only (a dummy) FUNCTION INIDOM and SUBROUTINE CHSPCM)
        VLUGR3.f
        ILUBSn.f
        blas.f (if the BLAS library is not available on the platform)

The results for this run is in the files
        EXMPLR_28
        EXMPLR_output


To get an optimal vector performance for a small number of PDE components
one should use the specific ILUBS#.f code, in this case: ILUBS3.f
