Classes | Namespaces | Functions | Variables
matrices.h File Reference

Go to the source code of this file.

Classes

class  oomph::Matrix< T, MATRIX_TYPE >
 Abstract base class for matrices, templated by the type of object that is stored in them and the type of matrix. The MATRIX_TYPE template argument is used as part of the Curiously Recurring Template Pattern, see http://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern The pattern is used to force the inlining of the round bracket access functions by ensuring that they are NOT virtual functions. More...
 
class  oomph::DoubleMatrixBase
 Abstract base class for matrices of doubles – adds abstract interfaces for solving, LU decomposition and multiplication by vectors. More...
 
class  oomph::DenseMatrix< T >
 //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// More...
 
class  oomph::SparseMatrix< T, MATRIX_TYPE >
 //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// More...
 
class  oomph::CRMatrix< T >
 A class for compressed row matrices, a sparse storage format Once again the recursive template trick is used to inform that base class that is should use the access functions provided in the CRMatrix class. More...
 
class  oomph::CRDoubleMatrix
 A class for compressed row matrices. This is a distributable object. More...
 
struct  oomph::CRDoubleMatrix::CRDoubleMatrixComparisonHelper
 Create a struct to provide a comparison function for std::sort. More...
 
class  oomph::DenseDoubleMatrix
 Class of matrices containing doubles, and stored as a DenseMatrix<double>, but with solving functionality inherited from the abstract DoubleMatrix class. More...
 
class  oomph::RankThreeTensor< T >
 ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// More...
 
class  oomph::RankFourTensor< T >
 ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// More...
 
class  oomph::RankFiveTensor< T >
 /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// More...
 
class  oomph::CCMatrix< T >
 /////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// More...
 
class  oomph::CCDoubleMatrix
 //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// More...
 

Namespaces

 oomph
 //////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
 
 oomph::RRR
 
 oomph::CRDoubleMatrixHelpers
 Namespace for helper functions for CRDoubleMatrices.
 

Functions

void oomph::CRDoubleMatrixHelpers::deep_copy (const CRDoubleMatrix *const in_matrix_pt, CRDoubleMatrix &out_matrix)
 Create a deep copy of the matrix pointed to by in_matrix_pt. More...
 
void oomph::CRDoubleMatrixHelpers::create_uniformly_distributed_matrix (const unsigned &nrow, const unsigned &ncol, const OomphCommunicator *const comm_pt, const Vector< double > &values, const Vector< int > &column_indices, const Vector< int > &row_start, CRDoubleMatrix &matrix_out)
 Builds a uniformly distributed matrix. A locally replicated matrix is constructed then redistributed using OOMPH-LIB's default uniform row distribution. This is memory intensive thus should be used for testing or small problems only. More...
 
double oomph::CRDoubleMatrixHelpers::inf_norm (const DenseMatrix< CRDoubleMatrix * > &matrix_pt)
 Compute infinity (maximum) norm of sub blocks as if it was one matrix. More...
 
double oomph::CRDoubleMatrixHelpers::gershgorin_eigenvalue_estimate (const DenseMatrix< CRDoubleMatrix * > &matrix_pt)
 Calculates the largest Gershgorin disc whilst preserving the sign. Let A be an n by n matrix, with entries aij. For $ i \in \{ 1,...,n \} $ let $ R_i = \sum_{i\neq j} |a_{ij}| $ be the sum of the absolute values of the non-diagonal entries in the i-th row. Let $ D(a_{ii},R_i) $ be the closed disc centered at $ a_{ii} $ with radius $ R_i $, such a disc is called a Gershgorin disc. More...
 
void oomph::CRDoubleMatrixHelpers::concatenate (const DenseMatrix< CRDoubleMatrix * > &matrix_pt, CRDoubleMatrix &result_matrix)
 Concatenate CRDoubleMatrix matrices. The in matrices are concatenated such that the block structure of the in matrices are preserved in the result matrix. Communication between processors is required. If the block structure of the sub matrices does not need to be preserved, consider using CRDoubleMatrixHelpers::concatenate_without_communication(...). More...
 
void oomph::CRDoubleMatrixHelpers::concatenate_without_communication (const Vector< LinearAlgebraDistribution * > &row_distribution_pt, const Vector< LinearAlgebraDistribution * > &col_distribution_pt, const DenseMatrix< CRDoubleMatrix * > &matrix_pt, CRDoubleMatrix &result_matrix)
 Concatenate CRDoubleMatrix matrices. More...
 
void oomph::CRDoubleMatrixHelpers::concatenate_without_communication (const Vector< LinearAlgebraDistribution * > &block_distribution_pt, const DenseMatrix< CRDoubleMatrix * > &matrix_pt, CRDoubleMatrix &result_matrix)
 Concatenate CRDoubleMatrix matrices. This calls the other concatenate_without_communication(...) function, passing block_distribution_pt as both the row_distribution_pt and col_distribution_pt. This should only be called for block square matrices. More...
 

Variables

std::string oomph::RRR::RayStr
 
bool oomph::RRR::RayBool