Summary description for SparseGridMtx. More...
#include <SparseGridMtxLL.h>
Public Member Functions | |
void | AlocateMemoryByPattern (IConectMatrix *bskl) |
void | BackSubstLT (double *x, long fixed_blocks) |
virtual double & | ElementAt (int i, int j) |
virtual void | Factorize () |
virtual void | Factorize_Incomplete () |
void | ForwardSubstL (double *x, long fixed_blocks) |
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 | Solve (double *b, double *x) |
virtual void | SolveA11 (double *x, long fixed_blocks) |
void | SolveLL (double *x, long fixed_blocks=0) |
virtual void | SolveLV (const LargeVector &b, LargeVector &x) |
SparseGridMtxLL (SparseMatrixF &sm, BYTE block_size, Ordering *block_order, Ordering *node_order, MathTracer *eMT, BOOL load_data=1) | |
SparseGridMtxLL (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 | ~SparseGridMtxLL () |
Public Attributes | |
double * | Columns_data |
Summary description for SparseGridMtx.
Definition at line 13 of file SparseGridMtxLL.h.
SparseGridMtxLL | ( | SparseMatrixF & | sm, | |
BYTE | block_size, | |||
Ordering * | block_order, | |||
MathTracer * | eMT, | |||
BOOL | load_data = 1 | |||
) |
Definition at line 9 of file SparseGridMtxLL.cpp.
References SparseMatrixF::a, AlocateMemoryByPattern(), SparseGridMtx::BlockArith, Ordering::cm, SparseGridMtx::ComputeBlocks(), eLL_decomposition, LoadMatrixNumbers(), and DenseMatrixArithmetics::prefered_decomposition.
SparseGridMtxLL | ( | SparseMatrixF & | sm, | |
BYTE | block_size, | |||
Ordering * | block_order, | |||
Ordering * | node_order, | |||
MathTracer * | eMT, | |||
BOOL | load_data = 1 | |||
) |
Definition at line 24 of file SparseGridMtxLL.cpp.
References SparseMatrixF::a, AlocateMemoryByPattern(), SparseGridMtx::BlockArith, Ordering::cm, SparseGridMtx::ComputeBlocks(), eLL_decomposition, LoadMatrixNumbers(), and DenseMatrixArithmetics::prefered_decomposition.
~SparseGridMtxLL | ( | ) | [virtual] |
Definition at line 204 of file SparseGridMtxLL.cpp.
References Columns_data.
void AlocateMemoryByPattern | ( | IConectMatrix * | bskl | ) |
Reimplemented from SparseGridMtx.
Definition at line 209 of file SparseGridMtxLL.cpp.
References SparseGridMtx::block_storage, SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridMtx::columns_data_length, IConectMatrix::DetachIndexesAboveDiagonalInColumn(), SparseGridColumn::Entries, long(), IMatrix::N(), SparseGridMtx::n_blocks, TraceableMatrix::Write(), and TraceableMatrix::Writeln().
Referenced by SparseGridMtxLL().
void BackSubstLT | ( | double * | x, | |
long | fixed_blocks | |||
) |
Definition at line 607 of file SparseGridMtxLL.cpp.
References SparseGridMtx::block_order, SparseGridMtx::block_size, SparseGridMtx::block_storage, SparseGridMtx::BlockArith, SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridColumn::Entries, SparseGridColumn::IndexesUfa, IntArrayList::Items, SparseGridMtx::N(), SparseGridMtx::n_blocks, no, Ordering::order, DenseMatrixArithmetics::SubMultBlockByVector(), and DenseMatrixArithmetics::SubstSolveLT().
Referenced by SolveLL().
double & ElementAt | ( | int | i, | |
int | j | |||
) | [virtual] |
Implements ILargeMatrix.
Definition at line 37 of file SparseGridMtxLL.cpp.
References SparseGridMtx::block_order, SparseGridMtx::block_size, SparseGridMtx::block_storage, SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridColumn::FindExistingBlockIndex(), IntArrayList::Items, SparseGridMtx::node_order, and Ordering::perm.
void Factorize | ( | ) | [virtual] |
Implements SparseGridMtx.
Definition at line 267 of file SparseGridMtxLL.cpp.
References MathTracer::act_block, SparseGridMtx::block_size, SparseGridMtx::block_storage, SparseGridMtx::BlockArith, MathTracer::break_flag, SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridMtx::ComputeBlocks(), TraceableMatrix::eMT, SparseGridColumn::Entries, SparseGridColumn::IndexesUfa, IntArrayList::Items, DenseMatrixArithmetics::L_BlockSolve(), DenseMatrixArithmetics::LL_Decomposition(), long(), memset(), SparseGridMtx::n_blocks, DenseMatrixArithmetics::SubATBproduct(), TraceableMatrix::Write(), and DenseMatrixArithmetics::zero_pivots.
void Factorize_Incomplete | ( | ) | [virtual] |
Definition at line 355 of file SparseGridMtxLL.cpp.
References MathTracer::act_block, SparseGridMtx::block_size, SparseGridMtx::block_storage, SparseGridMtx::BlockArith, MathTracer::break_flag, SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridMtx::ComputeBlocks(), Array::Copy(), TraceableMatrix::eMT, SparseGridColumn::Entries, SparseGridColumn::IndexesUfa, IntArrayList::Items, DenseMatrixArithmetics::L_BlockSolve(), DenseMatrixArithmetics::LL_Decomposition(), long(), memset(), SparseGridMtx::n_blocks, DenseMatrixArithmetics::SubATBproduct(), TraceableMatrix::Write(), and DenseMatrixArithmetics::zero_pivots.
void ForwardSubstL | ( | double * | x, | |
long | fixed_blocks | |||
) |
Definition at line 579 of file SparseGridMtxLL.cpp.
References SparseGridMtx::block_order, SparseGridMtx::block_size, SparseGridMtx::block_storage, SparseGridMtx::BlockArith, SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridColumn::Entries, SparseGridColumn::IndexesUfa, IntArrayList::Items, SparseGridMtx::N(), SparseGridMtx::n_blocks, no, Ordering::order, DenseMatrixArithmetics::SubMultTBlockByVector(), and DenseMatrixArithmetics::SubstSolveL().
Referenced by SolveLL().
double GetValue | ( | long | bi, | |
long | bj, | |||
long | si, | |||
long | sj, | |||
long & | aux_bi_idx, | |||
long & | aux_bj_idx | |||
) | [inline] |
Definition at line 34 of file SparseGridMtxLL.h.
References SparseGridMtx::block_storage, SparseGridMtx::Columns, Columns_data, and SparseGridColumn::GetValue().
Referenced by WriteCondensedMatrixA22().
void LoadMatrixNumbers | ( | SparseMatrixF & | sm | ) | [virtual] |
Implements SparseGridMtx.
Definition at line 108 of file SparseGridMtxLL.cpp.
References SparseMatrixF::a, SparseMatrixF::Adr(), SparseGridMtx::block_order, SparseGridMtx::block_size, SparseGridMtx::block_storage, SparseMatrixF::Ci(), SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridColumn::FindExistingBlockIndex(), IntArrayList::Items, LoadZeros(), long(), SparseMatrixF::neq, SparseGridMtx::node_order, SparseGridMtx::nonzeros, and Ordering::perm.
Referenced by SparseGridMtxLL().
void LoadZeros | ( | ) | [virtual] |
Implements ILargeMatrix.
Definition at line 87 of file SparseGridMtxLL.cpp.
References SparseGridMtx::block_order, SparseGridMtx::block_size, SparseGridMtx::block_storage, Columns_data, SparseGridMtx::columns_data_length, IntArrayList::Items, memset(), SparseGridMtx::n_blocks, SparseGridMtx::node_order, SparseGridMtx::noDummyDOFs, and Ordering::perm.
Referenced by LoadMatrixNumbers().
void MultiplyByVector | ( | const LargeVectorAttach & | x, | |
LargeVectorAttach & | y | |||
) | [virtual] |
Reimplemented from SparseGridMtx.
Definition at line 242 of file SparseGridMtxLL.cpp.
void SchurComplementFactorization | ( | int | fixed_blocks | ) | [virtual] |
Implements SparseGridMtx.
Definition at line 460 of file SparseGridMtxLL.cpp.
References MathTracer::act_block, SparseGridMtx::block_size, SparseGridMtx::block_storage, SparseGridMtx::BlockArith, MathTracer::break_flag, SparseGridColumn::column_start_idx, SparseGridMtx::Columns, Columns_data, SparseGridMtx::ComputeBlocks(), TraceableMatrix::eMT, SparseGridColumn::Entries, SparseGridColumn::IndexesUfa, IntArrayList::Items, DenseMatrixArithmetics::L_BlockSolve(), DenseMatrixArithmetics::LL_Decomposition(), memset(), SparseGridMtx::n_blocks, DenseMatrixArithmetics::SubATBproduct(), and DenseMatrixArithmetics::zero_pivots.
void Solve | ( | double * | b, | |
double * | x | |||
) | [virtual] |
Implements SparseGridMtx.
Definition at line 564 of file SparseGridMtxLL.cpp.
References Array::Copy(), SparseGridMtx::n, and SolveLL().
void SolveA11 | ( | double * | x, | |
long | fixed_blocks | |||
) | [virtual] |
Implements SparseGridMtx.
Definition at line 642 of file SparseGridMtxLL.cpp.
void SolveLL | ( | double * | x, | |
long | fixed_blocks = 0 | |||
) |
Definition at line 636 of file SparseGridMtxLL.cpp.
References BackSubstLT(), and ForwardSubstL().
void SolveLV | ( | const LargeVector & | b, | |
LargeVector & | x | |||
) | [virtual] |
Implements SparseGridMtx.
Definition at line 571 of file SparseGridMtxLL.cpp.
References LargeVectorAttach::DataPtr(), LargeVectorAttach::Initialize(), SparseGridMtx::n, and SolveLL().
void Sub_A11inv_A12 | ( | double * | x, | |
long | fixed_blocks | |||
) | [virtual] |
Implements SparseGridMtx.
Definition at line 654 of file SparseGridMtxLL.cpp.
void Sub_A21_A11inv | ( | double * | x, | |
long | fixed_blocks | |||
) | [virtual] |
Implements SparseGridMtx.
Definition at line 648 of file SparseGridMtxLL.cpp.
void WriteCondensedMatrixA22 | ( | double * | a, | |
Ordering * | mcn, | |||
IntArrayList * | lncn | |||
) | [virtual] |
Implements SparseGridMtx.
Definition at line 660 of file SparseGridMtxLL.cpp.
References SparseGridMtx::block_order, SparseGridMtx::BlockSize(), IntArrayList::Count, GetValue(), IntArrayList::Items, and Ordering::perm.
double* Columns_data |
Definition at line 29 of file SparseGridMtxLL.h.
Referenced by AlocateMemoryByPattern(), BackSubstLT(), ElementAt(), Factorize(), Factorize_Incomplete(), ForwardSubstL(), GetValue(), LoadMatrixNumbers(), LoadZeros(), SchurComplementFactorization(), and ~SparseGridMtxLL().