SparseGridMtxLDL Class Reference

Summary description for SparseGridMtx. More...

#include <SparseGridMtxLDL.h>

Inheritance diagram for SparseGridMtxLDL:
SparseGridMtx TraceableMatrix ILargeMatrix IMatrix

List of all members.

Public Member Functions

void AddValue (long bi, long bj, long si, long sj, double val)
void AlocateMemoryByPattern (IConectMatrix *bskl)
virtual double & ElementAt (int i, int j)
virtual void Factorize ()
virtual void Factorize_Incomplete ()
void FactorizeOMP ()
double GetValue (long bi, long bj, long si, long sj, long &aux_bi_idx, long &aux_bj_idx)
virtual void LoadMatrixNumbers (SparseMatrixF &sm)
virtual void LoadZeros ()
virtual void MultiplyByVector (const LargeVectorAttach &x, LargeVectorAttach &y)
virtual void SchurComplementFactorization (int fixed_blocks)
void SetValue (long bi, long bj, long si, long sj, double val, long &aux_bi_idx, long &aux_bj_idx)
virtual void Solve (double *b, double *x)
virtual void SolveA11 (double *x, long fixed_blocks)
void SolveLDL (double *x, long fixed_blocks=0)
void SolveLDL_block_perm (const LargeVector &b, LargeVector &x)
void SolveLDL_node_perm (const LargeVector &b, LargeVector &x)
virtual void SolveLV (const LargeVector &b, LargeVector &x)
 SparseGridMtxLDL (SparseMatrixF &sm, BYTE block_size, Ordering *block_order, Ordering *node_order, MathTracer *eMT, BOOL load_data=1)
 SparseGridMtxLDL (SparseMatrixF &sm, BYTE block_size, Ordering *block_order, MathTracer *eMT, BOOL load_data=1)
virtual void Sub_A11inv_A12 (double *x, long fixed_blocks)
virtual void Sub_A21_A11inv (double *x, long fixed_blocks)
virtual void WriteCondensedMatrixA22 (double *a, Ordering *mcn, IntArrayList *lncn)
virtual ~SparseGridMtxLDL ()

Public Attributes

double * Columns_data
LargeVectortmp_vector_BS
LargeVectortmp_vector_BS_nodes

Private Member Functions

void BackSubstLT (double *x, long fixed_blocks)
void ForwardSubstL (double *x, long fixed_blocks)
void SolveD (double *x, long fixed_blocks)
void SubMultL12 (double *px, double *py, long fixed_blocks)
 y -= L12 * x
void SubMultL12T (double *px, double *py, long fixed_blocks)
 y -= L12^T * x

Detailed Description

Summary description for SparseGridMtx.

Definition at line 13 of file SparseGridMtxLDL.h.


Constructor & Destructor Documentation

SparseGridMtxLDL ( SparseMatrixF sm,
BYTE  block_size,
Ordering block_order,
MathTracer eMT,
BOOL  load_data = 1 
)
SparseGridMtxLDL ( SparseMatrixF sm,
BYTE  block_size,
Ordering block_order,
Ordering node_order,
MathTracer eMT,
BOOL  load_data = 1 
)
~SparseGridMtxLDL (  )  [virtual]

Definition at line 150 of file SparseGridMtxLDL.cpp.

References Columns_data.


Member Function Documentation

void AddValue ( long  bi,
long  bj,
long  si,
long  sj,
double  val 
) [inline]
void AlocateMemoryByPattern ( IConectMatrix bskl  ) 
void BackSubstLT ( double *  x,
long  fixed_blocks 
) [private]
double & ElementAt ( int  i,
int  j 
) [virtual]
void Factorize (  )  [virtual]
void Factorize_Incomplete (  )  [virtual]
void FactorizeOMP (  ) 
void ForwardSubstL ( double *  x,
long  fixed_blocks 
) [private]
double GetValue ( long  bi,
long  bj,
long  si,
long  sj,
long &  aux_bi_idx,
long &  aux_bj_idx 
) [inline]
void LoadMatrixNumbers ( SparseMatrixF sm  )  [virtual]
void LoadZeros (  )  [virtual]
void MultiplyByVector ( const LargeVectorAttach x,
LargeVectorAttach y 
) [virtual]
void SchurComplementFactorization ( int  fixed_blocks  )  [virtual]
void SetValue ( long  bi,
long  bj,
long  si,
long  sj,
double  val,
long &  aux_bi_idx,
long &  aux_bj_idx 
) [inline]
void Solve ( double *  b,
double *  x 
) [virtual]

Implements SparseGridMtx.

Definition at line 761 of file SparseGridMtxLDL.cpp.

References Array::Copy(), SparseGridMtx::n, and SolveLDL().

Referenced by SolveLDL_block_perm().

void SolveA11 ( double *  x,
long  fixed_blocks 
) [virtual]

Implements SparseGridMtx.

Definition at line 904 of file SparseGridMtxLDL.cpp.

References SolveLDL().

void SolveD ( double *  x,
long  fixed_blocks 
) [private]
void SolveLDL ( double *  x,
long  fixed_blocks = 0 
)

Definition at line 793 of file SparseGridMtxLDL.cpp.

References BackSubstLT(), ForwardSubstL(), and SolveD().

Referenced by Solve(), and SolveA11().

void SolveLDL_block_perm ( const LargeVector b,
LargeVector x 
)

Definition at line 787 of file SparseGridMtxLDL.cpp.

References LargeVectorAttach::DataPtr(), and Solve().

Referenced by SolveLDL_node_perm().

void SolveLDL_node_perm ( const LargeVector b,
LargeVector x 
)
void SolveLV ( const LargeVector b,
LargeVector x 
) [virtual]

Implements SparseGridMtx.

Definition at line 768 of file SparseGridMtxLDL.cpp.

References SolveLDL_node_perm().

void Sub_A11inv_A12 ( double *  x,
long  fixed_blocks 
) [virtual]

Implements SparseGridMtx.

Definition at line 916 of file SparseGridMtxLDL.cpp.

References BackSubstLT(), and SubMultL12().

void Sub_A21_A11inv ( double *  x,
long  fixed_blocks 
) [virtual]

Implements SparseGridMtx.

Definition at line 909 of file SparseGridMtxLDL.cpp.

References ForwardSubstL(), SolveD(), and SubMultL12T().

void SubMultL12 ( double *  px,
double *  py,
long  fixed_blocks 
) [private]
void SubMultL12T ( double *  px,
double *  py,
long  fixed_blocks 
) [private]
void WriteCondensedMatrixA22 ( double *  a,
Ordering mcn,
IntArrayList lncn 
) [virtual]

Member Data Documentation

double* Columns_data

Definition at line 86 of file SparseGridMtxLDL.h.

Definition at line 83 of file SparseGridMtxLDL.h.

Referenced by SolveLDL_node_perm().


The documentation for this class was generated from the following files:

Generated by  doxygen 1.6.2