aboutsummaryrefslogtreecommitdiff
path: root/src/elliptic/README
blob: 09fa662ccb822c94253de2bad00515b3838a8fbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
This directory contains code for solving elliptic systems on our
($S^2$ topology) multipatch system in ../patch/.

The main files are as follows:

Jacobian.{hh,cc}
	These define a  Jacobian  class.  This is a generic interface
	(a C++ abstract base class) to set up a Jacobian matrix and
	solve linear systems with this matrix as the right hand side
	matrix.

dense_Jacobian.{hh,cc}
	These define a  dense_Jacobian  class (to store a Jacobian matrix
	in a Fortran dense-matrix format) and a  dense_Jacobian__LAPACK
	class (to solve linear systems using LAPACK routines).  These
	classes are derived from (and hence share the generic interface
	of) the  Jacobian  class.

row_sparse_Jacobian.{hh,cc}
	These define a  row_sparse_Jacobian  class (to store a Jacobian
	matrix in a row-oriented sparse-matrix format) and a
	 row_sparse_Jacobian__ILUCG  class (to solve linear systems using
	an ILUCG).  These classes are derived from (and hence share the
	generic interface of) the  Jacobian  class.

lapack.h
	Header file defining C/C++ prototypes for a few LAPACK routines.
lapack_wrapper.F77
	Wrapper routines around a few LAPACK routines, to avoid problems
	with C <--> Fortran passing of character-string arguments.

ilucg.h
	Header file defining C/C++ prototypes for ILUCG routines
ilucg.f77
	ILUCG (Incomplete LU-decomposition / conjugate gradiant)
	subroutine.  I don't know the original author of this routine;
	it was provided to me by Tom Nicol, UBC Computing Center,
	in c.1985.
ilucg_wrapper.F77
	Wrapper routines around the ILUCG routines, to avoid problems
	with C <--> Fortran passing of Fortran logical return results.