sMat Struct Reference
[Mat class]

Contains public data memebers for Mat class. More...

#include <mat.h>

Collaboration diagram for sMat:

Collaboration graph
[legend]

List of all members.

Public Attributes

char name [10]
 SETUP (name, memory management, etc) character string name for this matrix.
Vmem * vmem
 the memory manager
int iMadeVmem
 did i make vmem or was it inherited
MATformat format
 PARAMETERS (storage format, symmetry, etc).
MATstate state
 possible states of this matrix format
MATsym sym
 symmetry keys for the matrix
MATimpl impl
 implicit diagonal block not stored.
int numR
 DIMENSIONS (row and col dimensions, nonzeros, etc) num of rows in the matrix.
int numC
 DIMENSIONS (row and col dimensions, nonzeros, etc) num of cols (DRC REQUIRES numC=numR).
int numA
 DIMENSIONS (row and col dimensions, nonzeros, etc) num of nonzeros we are actually storing, counting the diagonal, the strict upper-triangle, and also the strict lower-triangle if we are actually storing the lower-triangle (sym=0).
int numO
 DIMENSIONS (row and col dimensions, nonzeros, etc) num of nonzeros we are actually storing in the strict upper-triangle of matrix. (DRC only).
int numZ
 DIMENSIONS (row and col dimensions, nonzeros, etc) num of nonzeros we WOULD be storing if we ignored symmetry. (DRC only).
int numBR
 DIMENSIONS (row and col dimensions, nonzeros, etc) num of boundary rows.
int numBC
 DIMENSIONS (row and col dimensions, nonzeros, etc) num of boundary cols.
int iMallocIJA
 MALLOC AREAS (high-order storage). Did I malloc IJA?
int iMallocA
 MALLOC AREAS (high-order storage). Did I malloc A?
int * IJA
 MALLOC AREAS (high-order storage) integer structure [ IA ; JA ].
double * A
 MALLOC AREAS (high-order storage)
packed nozeros:
DRC: [ diag ; offU ; offL ]
ROW: [ offU ]
COL: [ offL ]
RFL: [ everything; stored row-wise ]
CFL: [ everything; stored col-wise ].
int * BR
 MALLOC AREAS (high-order storage) boundary rows (optionally used).
int * BC
 MALLOC AREAS (high-order storage) boundary cols (optionally used).
int * IA
 ALIASES (pointers into the above malloc areas; low-order storage) pos in JA/offU/offL for row/col start.
int * JA
 ALIASES (pointers into the above malloc areas; low-order storage) row/col indices for nonzeros in col/row.
double * diag
 ALIASES (pointers into the above malloc areas; low-order storage) diagonal of the matrix.
double * offU
 ALIASES (pointers into the above malloc areas; low-order storage) upper-triangle off-diag row-wise nonzeros.
double * offL
 ALIASES (pointers into the above malloc areas; low-order storage) lower-triangle off-diag col-wise nonzeros.
Sluslu
 EXTERNAL SUPPORT (handles to other complex objects) Sparse LU factorization container object.
Vset * lnkL
 EXTERNAL SUPPORT (handles to other complex objects) Vset object for linked list utilities and RLN.
Vset * lnkU
 EXTERNAL SUPPORT (handles to other complex objects) Vset object for linked list utilities and CLN.
void * xln
 EXTERNAL SUPPORT (handles to other complex objects) Support for XLN.
void * xlnt
 EXTERNAL SUPPORT (handles to other complex objects) Support for XLN.


Detailed Description

Contains public data memebers for Mat class.

Author:
Michael Holst

Member Data Documentation

PARAMETERS (storage format, symmetry, etc).

Note:
possible format types of this matrix:
0 => ZERO (zero matrix; no structure at all)
1 => DRC (diag-row-col-YSMP variant)
2 => ROW (row-YSMP)
3 => COL (col-YSMP)
4 => SLU (sparse-LU)
5 => RLN (row-linked-list)
6 => CLN (col-linked-list)
7 => XLN (row-linked-list AND col-linked-list)
9 => RFL (row-wise dense matrix)
10 => CFL (col-wise dense matrix)

possible states of this matrix format

Note:
0 => NULL (exists; shape fixed; no storage)
1 => ZERO (matrix storage available and zeroed)
2 => ASSEMBLED (matrix ready to use)
3 => FACTORED (matrix factored) (SLU only)

symmetry keys for the matrix

Note:
0 => ISNOT (store all)
1 => IS (store upper tri) (DRC only)
2 => STRUC (store all, but can reuse int structs)

implicit diagonal block not stored.

Note:
0 => ISNOT (nothing implicit; everything stored)
1 => IS (implicit diagonal block not stored)


If impl==1, then an implicit diagonal block is present but not stored; this is to avoid the extra log N-like storage requirement for storing the identity block in all prolongation matrices, but yet account for their impact when multiplying by prolongation and restriction matrices.

The setting (impl==1) is valid ONLY for ROW and COL formats. Moreover, there are restrictions in the dimensions of these two formats to support the implicit identity; these are:
ROW: numR >= numC (i.e., tall and skinny)
COL: numR <= numC (i.e., short and fat)

DIMENSIONS (row and col dimensions, nonzeros, etc) num of nonzeros we WOULD be storing if we ignored symmetry. (DRC only).

Note:
The relationships between numZ/numA and numO are:
non-DRC: numO = numZ = numA
DRC-symmetric: numA = numR + numO, numZ = numA + numO
DRC-non-symmetric: numA = numR + 2*numO, numZ = numA


The documentation for this struct was generated from the following file:

Generated on Mon Aug 9 11:13:48 2010 for MC by  doxygen 1.5.6