Summary description for SparseGridMtx. More...
#include <SparseGridMtx.h>
Public Member Functions | |
void | AlocateMemoryByPattern (IConectMatrix *bskl) |
long | Blocks () |
long | BlockSize () |
void | ComputeBlocks () |
virtual void | Factorize ()=0 |
double | GetWaste () |
virtual void | LoadMatrixNumbers (SparseMatrixF &sm)=0 |
virtual void | MultiplyByVector (const LargeVectorAttach &x, LargeVectorAttach &y) |
long | N () const |
long | N_blocks () |
long | No_Multiplications () |
long | Nonzeros () const |
virtual void | SchurComplementFactorization (int fixed_blocks)=0 |
virtual void | Solve (double *b, double *x)=0 |
virtual void | SolveA11 (double *x, long fixed_blocks)=0 |
virtual void | SolveLV (const LargeVector &b, LargeVector &x)=0 |
SparseGridMtx (SparseMatrixF &sm, BYTE block_size, Ordering *block_order, Ordering *node_order, MathTracer *eMT) | |
SparseGridMtx (SparseMatrixF &sm, BYTE block_size, Ordering *block_order, MathTracer *eMT) | |
virtual void | Sub_A11inv_A12 (double *x, long fixed_blocks)=0 |
virtual void | Sub_A21_A11inv (double *x, long fixed_blocks)=0 |
virtual void | WriteCondensedMatrixA22 (double *a, Ordering *mcn, IntArrayList *lncn)=0 |
void | WriteStatistics (long no_init_blocks, long no_nonzeros) |
virtual | ~SparseGridMtx () |
Public Attributes | |
Ordering * | block_order |
long | block_size |
long | block_storage |
DenseMatrixArithmetics * | BlockArith |
SparseGridColumn ** | Columns |
long | columns_data_length |
Ordering * | node_order |
Protected Attributes | |
long | blocks |
long | n |
long | n_blocks |
long | no_multiplications |
long | noDummyDOFs |
long | nonzeros |
Summary description for SparseGridMtx.
Definition at line 16 of file SparseGridMtx.h.
SparseGridMtx | ( | SparseMatrixF & | sm, | |
BYTE | block_size, | |||
Ordering * | block_order, | |||
MathTracer * | eMT | |||
) |
tmp_vector_BS = NULL;
Definition at line 9 of file SparseGridMtx.cpp.
References BlockArith, Columns, DenseMatrixArithmetics::eMT, IntArrayList::Items, long(), n, n_blocks, SparseMatrixF::neq, DenseMatrixArithmetics::NewArithmetics(), no_multiplications, node_order, noDummyDOFs, nonzeros, and Ordering::perm.
SparseGridMtx | ( | SparseMatrixF & | sm, | |
BYTE | block_size, | |||
Ordering * | block_order, | |||
Ordering * | node_order, | |||
MathTracer * | eMT | |||
) |
Definition at line 36 of file SparseGridMtx.cpp.
References BlockArith, Columns, IntArrayList::Count, DenseMatrixArithmetics::eMT, IntArrayList::Items, long(), n, n_blocks, SparseMatrixF::neq, DenseMatrixArithmetics::NewArithmetics(), no_multiplications, noDummyDOFs, nonzeros, Ordering::order, and Ordering::perm.
~SparseGridMtx | ( | ) | [virtual] |
Definition at line 64 of file SparseGridMtx.cpp.
References block_order, BlockArith, Columns, and n_blocks.
void AlocateMemoryByPattern | ( | IConectMatrix * | bskl | ) |
Reimplemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
long Blocks | ( | ) | [inline] |
long BlockSize | ( | ) | [inline] |
Definition at line 63 of file SparseGridMtx.h.
Referenced by SparseGridMtxLU::WriteCondensedMatrixA22(), SparseGridMtxLL::WriteCondensedMatrixA22(), SparseGridMtxLDL::WriteCondensedMatrixA22(), and WriteStatistics().
void ComputeBlocks | ( | ) |
Definition at line 84 of file SparseGridMtx.cpp.
References blocks, Columns, and n_blocks.
Referenced by SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), SparseGridMtxLDL::SchurComplementFactorization(), SparseGridMtxLDL::SparseGridMtxLDL(), SparseGridMtxLL::SparseGridMtxLL(), and SparseGridMtxLU::SparseGridMtxLU().
virtual void Factorize | ( | ) | [pure virtual] |
Implements ILargeMatrix.
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
double GetWaste | ( | ) |
Definition at line 91 of file SparseGridMtx.cpp.
References block_storage, blocks, and nonzeros.
virtual void LoadMatrixNumbers | ( | SparseMatrixF & | sm | ) | [pure virtual] |
Implements ILargeMatrix.
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
void MultiplyByVector | ( | const LargeVectorAttach & | x, | |
LargeVectorAttach & | y | |||
) | [virtual] |
Implements ILargeMatrix.
Reimplemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
Definition at line 112 of file SparseGridMtx.cpp.
long N | ( | ) | const [inline, virtual] |
Implements IMatrix.
Definition at line 58 of file SparseGridMtx.h.
References n.
Referenced by SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), and SparseGridMtxLDL::SolveD().
long N_blocks | ( | ) | [inline] |
Definition at line 66 of file SparseGridMtx.h.
References n_blocks.
long No_Multiplications | ( | ) | [inline, virtual] |
Implements ILargeMatrix.
Definition at line 69 of file SparseGridMtx.h.
References no_multiplications.
long Nonzeros | ( | ) | const [inline, virtual] |
Implements IMatrix.
Definition at line 59 of file SparseGridMtx.h.
References columns_data_length.
Referenced by WriteStatistics().
virtual void SchurComplementFactorization | ( | int | fixed_blocks | ) | [pure virtual] |
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
Referenced by SparseGridMtxPD::SchurComplementFactorization().
virtual void Solve | ( | double * | b, | |
double * | x | |||
) | [pure virtual] |
Implements ILargeMatrix.
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
virtual void SolveA11 | ( | double * | x, | |
long | fixed_blocks | |||
) | [pure virtual] |
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
Referenced by SparseGridMtxPD::SolveA11().
virtual void SolveLV | ( | const LargeVector & | b, | |
LargeVector & | x | |||
) | [pure virtual] |
Implements ILargeMatrix.
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
virtual void Sub_A11inv_A12 | ( | double * | x, | |
long | fixed_blocks | |||
) | [pure virtual] |
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
Referenced by SparseGridMtxPD::Sub_A11inv_A12().
virtual void Sub_A21_A11inv | ( | double * | x, | |
long | fixed_blocks | |||
) | [pure virtual] |
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
Referenced by SparseGridMtxPD::Sub_A21_A11inv().
virtual void WriteCondensedMatrixA22 | ( | double * | a, | |
Ordering * | mcn, | |||
IntArrayList * | lncn | |||
) | [pure virtual] |
Implemented in SparseGridMtxLDL, SparseGridMtxLL, and SparseGridMtxLU.
Referenced by SparseGridMtxPD::WriteCondensedMatrixA22().
void WriteStatistics | ( | long | no_init_blocks, | |
long | no_nonzeros | |||
) | [virtual] |
Implements ILargeMatrix.
Definition at line 96 of file SparseGridMtx.cpp.
References Blocks(), BlockSize(), TraceableMatrix::eMT, Nonzeros(), MathTracer::Write(), and MathTracer::Writeln().
Referenced by DSSolver::CreateNewSparseGridMtx().
Definition at line 41 of file SparseGridMtx.h.
Referenced by SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), SparseGridMtxLU::ElementAt(), SparseGridMtxLL::ElementAt(), SparseGridMtxLDL::ElementAt(), SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), SparseGridMtxLU::LoadMatrixNumbers(), SparseGridMtxLL::LoadMatrixNumbers(), SparseGridMtxLDL::LoadMatrixNumbers(), SparseGridMtxLU::LoadZeros(), SparseGridMtxLL::LoadZeros(), SparseGridMtxLDL::LoadZeros(), SparseGridMtxLDL::SolveD(), SparseGridMtxLDL::SubMultL12(), SparseGridMtxLDL::SubMultL12T(), SparseGridMtxLU::SubMultL21(), SparseGridMtxLU::SubMultU12(), SparseGridMtxLU::WriteCondensedMatrixA22(), SparseGridMtxLL::WriteCondensedMatrixA22(), SparseGridMtxLDL::WriteCondensedMatrixA22(), and ~SparseGridMtx().
long block_size |
Definition at line 32 of file SparseGridMtx.h.
Referenced by SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), SparseGridMtxLU::ElementAt(), SparseGridMtxLL::ElementAt(), SparseGridMtxLDL::ElementAt(), SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), SparseGridMtxLU::LoadMatrixNumbers(), SparseGridMtxLL::LoadMatrixNumbers(), SparseGridMtxLDL::LoadMatrixNumbers(), SparseGridMtxLU::LoadZeros(), SparseGridMtxLL::LoadZeros(), SparseGridMtxLDL::LoadZeros(), SparseGridMtxLDL::MultiplyByVector(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), SparseGridMtxLDL::SolveD(), SparseGridMtxLDL::SubMultL12(), SparseGridMtxLDL::SubMultL12T(), SparseGridMtxLU::SubMultL21(), and SparseGridMtxLU::SubMultU12().
long block_storage |
Definition at line 35 of file SparseGridMtx.h.
Referenced by SparseGridMtxLDL::AddValue(), SparseGridMtxLU::AlocateMemoryByPattern(), SparseGridMtxLL::AlocateMemoryByPattern(), SparseGridMtxLDL::AlocateMemoryByPattern(), SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), SparseGridMtxLU::ElementAt(), SparseGridMtxLL::ElementAt(), SparseGridMtxLDL::ElementAt(), SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), SparseGridMtxLU::GetValue(), SparseGridMtxLL::GetValue(), SparseGridMtxLDL::GetValue(), GetWaste(), SparseGridMtxLU::LoadMatrixNumbers(), SparseGridMtxLL::LoadMatrixNumbers(), SparseGridMtxLDL::LoadMatrixNumbers(), SparseGridMtxLU::LoadZeros(), SparseGridMtxLL::LoadZeros(), SparseGridMtxLDL::LoadZeros(), SparseGridMtxLDL::MultiplyByVector(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), SparseGridMtxLDL::SchurComplementFactorization(), SparseGridMtxLDL::SetValue(), SparseGridMtxLDL::SolveD(), SparseGridMtxLDL::SubMultL12(), SparseGridMtxLDL::SubMultL12T(), SparseGridMtxLU::SubMultL21(), and SparseGridMtxLU::SubMultU12().
Definition at line 37 of file SparseGridMtx.h.
Referenced by SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), SparseGridMtxLDL::MultiplyByVector(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), SparseGridMtxLDL::SchurComplementFactorization(), SparseGridMtxLDL::SolveD(), SparseGridMtx(), SparseGridMtxLL::SparseGridMtxLL(), SparseGridMtxLDL::SubMultL12(), SparseGridMtxLDL::SubMultL12T(), SparseGridMtxLU::SubMultL21(), SparseGridMtxLU::SubMultU12(), and ~SparseGridMtx().
long blocks [protected] |
Definition at line 52 of file SparseGridMtx.h.
Referenced by Blocks(), ComputeBlocks(), and GetWaste().
Definition at line 38 of file SparseGridMtx.h.
Referenced by SparseGridMtxLDL::AddValue(), SparseGridMtxLU::AlocateMemoryByPattern(), SparseGridMtxLL::AlocateMemoryByPattern(), SparseGridMtxLDL::AlocateMemoryByPattern(), SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), ComputeBlocks(), SparseGridMtxLU::ElementAt(), SparseGridMtxLL::ElementAt(), SparseGridMtxLDL::ElementAt(), SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), SparseGridMtxLU::GetValue(), SparseGridMtxLL::GetValue(), SparseGridMtxLDL::GetValue(), SparseGridMtxLU::LoadMatrixNumbers(), SparseGridMtxLL::LoadMatrixNumbers(), SparseGridMtxLDL::LoadMatrixNumbers(), SparseGridMtxLDL::MultiplyByVector(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), SparseGridMtxLDL::SchurComplementFactorization(), SparseGridMtxLDL::SetValue(), SparseGridMtx(), SparseGridMtxLDL::SubMultL12(), SparseGridMtxLDL::SubMultL12T(), SparseGridMtxLU::SubMultL21(), SparseGridMtxLU::SubMultU12(), and ~SparseGridMtx().
long columns_data_length |
Definition at line 72 of file SparseGridMtx.h.
Referenced by SparseGridMtxLU::AlocateMemoryByPattern(), SparseGridMtxLL::AlocateMemoryByPattern(), SparseGridMtxLDL::AlocateMemoryByPattern(), SparseGridMtxLU::LoadZeros(), SparseGridMtxLL::LoadZeros(), SparseGridMtxLDL::LoadZeros(), and Nonzeros().
long n [protected] |
Definition at line 46 of file SparseGridMtx.h.
Referenced by N(), SparseGridMtxLU::Solve(), SparseGridMtxLL::Solve(), SparseGridMtxLDL::Solve(), SparseGridMtxLU::SolveLV(), SparseGridMtxLL::SolveLV(), and SparseGridMtx().
long n_blocks [protected] |
Definition at line 47 of file SparseGridMtx.h.
Referenced by SparseGridMtxLU::AlocateMemoryByPattern(), SparseGridMtxLL::AlocateMemoryByPattern(), SparseGridMtxLDL::AlocateMemoryByPattern(), SparseGridMtxLL::BackSubstLT(), SparseGridMtxLDL::BackSubstLT(), SparseGridMtxLU::BackSubstU(), ComputeBlocks(), SparseGridMtxLU::Factorize(), SparseGridMtxLL::Factorize(), SparseGridMtxLDL::Factorize(), SparseGridMtxLL::Factorize_Incomplete(), SparseGridMtxLDL::Factorize_Incomplete(), SparseGridMtxLDL::FactorizeOMP(), SparseGridMtxLU::ForwardSubstL(), SparseGridMtxLL::ForwardSubstL(), SparseGridMtxLDL::ForwardSubstL(), SparseGridMtxLU::LoadZeros(), SparseGridMtxLL::LoadZeros(), SparseGridMtxLDL::LoadZeros(), SparseGridMtxLDL::MultiplyByVector(), N_blocks(), SparseGridMtxLU::SchurComplementFactorization(), SparseGridMtxLL::SchurComplementFactorization(), SparseGridMtxLDL::SchurComplementFactorization(), SparseGridMtxLDL::SolveD(), SparseGridMtx(), SparseGridMtxLDL::SubMultL12(), SparseGridMtxLDL::SubMultL12T(), SparseGridMtxLU::SubMultL21(), SparseGridMtxLU::SubMultU12(), and ~SparseGridMtx().
long no_multiplications [protected] |
Definition at line 55 of file SparseGridMtx.h.
Referenced by SparseGridMtxLDL::Factorize(), SparseGridMtxLDL::FactorizeOMP(), No_Multiplications(), and SparseGridMtx().
Definition at line 39 of file SparseGridMtx.h.
Referenced by SparseGridMtxLU::ElementAt(), SparseGridMtxLL::ElementAt(), SparseGridMtxLDL::ElementAt(), SparseGridMtxLU::LoadMatrixNumbers(), SparseGridMtxLL::LoadMatrixNumbers(), SparseGridMtxLDL::LoadMatrixNumbers(), SparseGridMtxLU::LoadZeros(), SparseGridMtxLL::LoadZeros(), SparseGridMtxLDL::LoadZeros(), SparseGridMtxLDL::SolveLDL_node_perm(), and SparseGridMtx().
long noDummyDOFs [protected] |
Definition at line 49 of file SparseGridMtx.h.
Referenced by SparseGridMtxLU::LoadZeros(), SparseGridMtxLL::LoadZeros(), SparseGridMtxLDL::LoadZeros(), and SparseGridMtx().
long nonzeros [protected] |
Definition at line 51 of file SparseGridMtx.h.
Referenced by GetWaste(), SparseGridMtxLU::LoadMatrixNumbers(), SparseGridMtxLL::LoadMatrixNumbers(), SparseGridMtxLDL::LoadMatrixNumbers(), and SparseGridMtx().