oomph::CRComplexMatrix Class Reference

A class for compressed row matrices. More...

#include <complex_matrices.h>

+ Inheritance diagram for oomph::CRComplexMatrix:

Public Member Functions

 CRComplexMatrix ()
 Default constructor. More...
 
 CRComplexMatrix (const Vector< std::complex< double >> &value, const Vector< int > &column_index, const Vector< int > &row_start, const unsigned long &n, const unsigned long &m)
 
 CRComplexMatrix (const CRComplexMatrix &matrix)=delete
 Broken copy constructor. More...
 
void operator= (const CRComplexMatrix &)=delete
 Broken assignment operator. More...
 
virtual ~CRComplexMatrix ()
 Destructor: Kill the LU decomposition if it has been computed. More...
 
void enable_doc_stats ()
 
void disable_doc_stats ()
 the solve More...
 
unsigned long nrow () const
 Return the number of rows of the matrix. More...
 
unsigned long ncol () const
 Return the number of columns of the matrix. More...
 
std::complex< doubleoperator() (const unsigned long &i, const unsigned long &j) const
 Overload the round-bracket access operator for read-only access. More...
 
int ludecompose ()
 LU decomposition using SuperLU. More...
 
void lubksub (Vector< std::complex< double >> &rhs)
 LU back solve for given RHS. More...
 
void clean_up_memory ()
 LU clean up (perhaps this should happen in the destructor) More...
 
void residual (const Vector< std::complex< double >> &x, const Vector< std::complex< double >> &b, Vector< std::complex< double >> &residual)
 Find the residual to x of Ax=b, i.e. r=b-Ax. More...
 
void multiply (const Vector< std::complex< double >> &x, Vector< std::complex< double >> &soln)
 Multiply the matrix by the vector x: soln=Ax. More...
 
void multiply_transpose (const Vector< std::complex< double >> &x, Vector< std::complex< double >> &soln)
 Multiply the transposed matrix by the vector x: soln=A^T x. More...
 
- Public Member Functions inherited from oomph::CRMatrix< std::complex< double > >
 CRMatrix ()
 Default constructor. More...
 
 CRMatrix (const Vector< std::complex< double > > &value, const Vector< int > &column_index_, const Vector< int > &row_start_, const unsigned long &n, const unsigned long &m)
 
 CRMatrix (const CRMatrix &source_matrix)
 Copy constructor. More...
 
void operator= (const CRMatrix &)=delete
 Broken assignment operator. More...
 
virtual ~CRMatrix ()
 Destructor, delete any allocated memory. More...
 
std::complex< doubleget_entry (const unsigned long &i, const unsigned long &j) const
 
std::complex< double > & entry (const unsigned long &i, const unsigned long &j)
 The read-write access function is deliberately broken. More...
 
introw_start ()
 Access to C-style row_start array. More...
 
const introw_start () const
 Access to C-style row_start array (const version) More...
 
intcolumn_index ()
 Access to C-style column index array. More...
 
const intcolumn_index () const
 Access to C-style column index array (const version) More...
 
void output_bottom_right_zero_helper (std::ostream &outfile) const
 
void sparse_indexed_output_helper (std::ostream &outfile) const
 
void clean_up_memory ()
 Wipe matrix data and set all values to 0. More...
 
void build (const Vector< std::complex< double > > &value, const Vector< int > &column_index, const Vector< int > &row_start, const unsigned long &n, const unsigned long &m)
 
void build_without_copy (std::complex< double > *value, int *column_index, int *row_start, const unsigned long &nnz, const unsigned long &n, const unsigned long &m)
 
- Public Member Functions inherited from oomph::SparseMatrix< T, MATRIX_TYPE >
 SparseMatrix ()
 Default constructor. More...
 
 SparseMatrix (const SparseMatrix &source_matrix)
 Copy constructor. More...
 
void operator= (const SparseMatrix &)=delete
 Broken assignment operator. More...
 
virtual ~SparseMatrix ()
 Destructor, delete the memory associated with the values. More...
 
Tvalue ()
 Access to C-style value array. More...
 
const Tvalue () const
 Access to C-style value array (const version) More...
 
unsigned long nrow () const
 Return the number of rows of the matrix. More...
 
unsigned long ncol () const
 Return the number of columns of the matrix. More...
 
unsigned long nnz () const
 Return the number of nonzero entries. More...
 
- Public Member Functions inherited from oomph::Matrix< T, MATRIX_TYPE >
 Matrix ()
 (Empty) constructor More...
 
 Matrix (const Matrix &matrix)=delete
 Broken copy constructor. More...
 
void operator= (const Matrix &)=delete
 Broken assignment operator. More...
 
virtual ~Matrix ()
 Virtual (empty) destructor. More...
 
T operator() (const unsigned long &i, const unsigned long &j) const
 
Toperator() (const unsigned long &i, const unsigned long &j)
 
virtual void output (std::ostream &outfile) const
 
void sparse_indexed_output (std::ostream &outfile, const unsigned &precision=0, const bool &output_bottom_right_zero=false) const
 
void sparse_indexed_output (std::string filename, const unsigned &precision=0, const bool &output_bottom_right_zero=false) const
 
- Public Member Functions inherited from oomph::ComplexMatrixBase
 ComplexMatrixBase ()
 (Empty) constructor. More...
 
 ComplexMatrixBase (const ComplexMatrixBase &matrix)=delete
 Broken copy constructor. More...
 
void operator= (const ComplexMatrixBase &)=delete
 Broken assignment operator. More...
 
virtual ~ComplexMatrixBase ()
 virtual (empty) destructor More...
 
virtual void solve (Vector< std::complex< double >> &rhs)
 
virtual void solve (const Vector< std::complex< double >> &rhs, Vector< std::complex< double >> &soln)
 
virtual double max_residual (const Vector< std::complex< double >> &x, const Vector< std::complex< double >> &rhs)
 

Protected Attributes

bool Doc_stats_during_solve
 
- Protected Attributes inherited from oomph::CRMatrix< std::complex< double > >
intColumn_index
 Column index. More...
 
intRow_start
 Start index for row. More...
 
- Protected Attributes inherited from oomph::SparseMatrix< T, MATRIX_TYPE >
TValue
 Internal representation of the matrix values, a pointer. More...
 
unsigned long N
 Number of rows. More...
 
unsigned long M
 Number of columns. More...
 
unsigned long Nnz
 Number of non-zero values (i.e. size of Value array) More...
 

Private Attributes

void * F_factors
 Storage for the LU factors as required by SuperLU. More...
 
int Info
 Info flag for the SuperLU solver. More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::Matrix< T, MATRIX_TYPE >
void range_check (const unsigned long &i, const unsigned long &j) const
 
- Static Protected Attributes inherited from oomph::SparseMatrix< T, MATRIX_TYPE >
static T Zero = T(0)
 Dummy zero. More...
 

Detailed Description

A class for compressed row matrices.

Constructor & Destructor Documentation

◆ CRComplexMatrix() [1/3]

oomph::CRComplexMatrix::CRComplexMatrix ( )
inline

Default constructor.

289  : CRMatrix<std::complex<double>>(), F_factors(0), Info(0)
290  {
291  // By default SuperLU solves linear systems quietly
292  Doc_stats_during_solve = false;
293  }
void * F_factors
Storage for the LU factors as required by SuperLU.
Definition: complex_matrices.h:282
bool Doc_stats_during_solve
Definition: complex_matrices.h:383
int Info
Info flag for the SuperLU solver.
Definition: complex_matrices.h:285

References Doc_stats_during_solve.

◆ CRComplexMatrix() [2/3]

oomph::CRComplexMatrix::CRComplexMatrix ( const Vector< std::complex< double >> &  value,
const Vector< int > &  column_index,
const Vector< int > &  row_start,
const unsigned long &  n,
const unsigned long &  m 
)
inline

Constructor: Pass vector of values, vector of column indices, vector of row starts and number of columns (can be suppressed for square matrices)

303  : CRMatrix<std::complex<double>>(value, column_index, row_start, n, m),
304  F_factors(0),
305  Info(0)
306  {
307  // By default SuperLU solves linear systems quietly
308  Doc_stats_during_solve = false;
309  }
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
int * row_start()
Access to C-style row_start array.
Definition: matrices.h:785
int * column_index()
Access to C-style column index array.
Definition: matrices.h:797
T * value()
Access to C-style value array.
Definition: matrices.h:616
int * m
Definition: level2_cplx_impl.h:294

References Doc_stats_during_solve.

◆ CRComplexMatrix() [3/3]

oomph::CRComplexMatrix::CRComplexMatrix ( const CRComplexMatrix matrix)
delete

Broken copy constructor.

◆ ~CRComplexMatrix()

virtual oomph::CRComplexMatrix::~CRComplexMatrix ( )
inlinevirtual

Destructor: Kill the LU decomposition if it has been computed.

320  {
321  clean_up_memory();
322  }
void clean_up_memory()
LU clean up (perhaps this should happen in the destructor)
Definition: complex_matrices.cc:1080

References clean_up_memory().

Member Function Documentation

◆ clean_up_memory()

void oomph::CRComplexMatrix::clean_up_memory ( )

LU clean up (perhaps this should happen in the destructor)

Cleanup memory.

1081  {
1082  // Only bother if we've done an LU solve
1083  if (F_factors != 0)
1084  {
1085  // SuperLU expects compressed column format: Set flag for
1086  // transpose (0/1) = (false/true)
1087  int transpose = 1;
1088 
1089  // Doc (0/1) = (false/true)
1090  int doc = 0;
1091  if (Doc_stats_during_solve) doc = 1;
1092 
1093  // Copies so that const-ness is maintained
1094  int n_aux = int(N);
1095  int nnz_aux = int(Nnz);
1096 
1097  // SuperLU in three steps (lu decompose, back subst, cleanup)
1098  // Flag to indicate which solve step to do (1, 2 or 3)
1099  int i = 3;
1100  superlu_complex(&i,
1101  &n_aux,
1102  &nnz_aux,
1103  0,
1104  Value,
1105  Column_index,
1106  Row_start,
1107  0,
1108  &n_aux,
1109  &transpose,
1110  &doc,
1111  &F_factors,
1112  &Info);
1113  }
1114  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
int * Row_start
Start index for row.
Definition: matrices.h:873
int * Column_index
Column index.
Definition: matrices.h:870
unsigned long Nnz
Number of non-zero values (i.e. size of Value array)
Definition: matrices.h:574
T * Value
Internal representation of the matrix values, a pointer.
Definition: matrices.h:565
unsigned long N
Number of rows.
Definition: matrices.h:568
return int(ret)+1
void transpose()
Definition: skew_symmetric_matrix3.cpp:135
int superlu_complex(int *, int *, int *, int *, std::complex< double > *, int *, int *, std::complex< double > *, int *, int *, int *, void *, int *)

References oomph::CRMatrix< std::complex< double > >::Column_index, Doc_stats_during_solve, F_factors, i, Info, int(), oomph::SparseMatrix< T, MATRIX_TYPE >::N, oomph::SparseMatrix< T, MATRIX_TYPE >::Nnz, oomph::CRMatrix< std::complex< double > >::Row_start, oomph::superlu_complex(), anonymous_namespace{skew_symmetric_matrix3.cpp}::transpose(), and oomph::SparseMatrix< T, MATRIX_TYPE >::Value.

Referenced by ~CRComplexMatrix().

◆ disable_doc_stats()

void oomph::CRComplexMatrix::disable_doc_stats ( )
inline

the solve

334  {
335  Doc_stats_during_solve = false;
336  }

References Doc_stats_during_solve.

◆ enable_doc_stats()

void oomph::CRComplexMatrix::enable_doc_stats ( )
inline

Set flag to indicate that stats are to be displayed during solution of linear system with SuperLU

327  {
328  Doc_stats_during_solve = true;
329  }

References Doc_stats_during_solve.

◆ lubksub()

void oomph::CRComplexMatrix::lubksub ( Vector< std::complex< double >> &  rhs)
virtual

LU back solve for given RHS.

Do back-substitution.

RHS vector

Reimplemented from oomph::ComplexMatrixBase.

1000  {
1001 #ifdef PARANOID
1002  if (N != rhs.size())
1003  {
1004  std::ostringstream error_message_stream;
1005  error_message_stream << "Size of RHS doesn't match matrix size\n"
1006  << "N, rhs.size() " << N << " " << rhs.size()
1007  << std::endl;
1008 
1009  throw OomphLibError(error_message_stream.str(),
1012  }
1013  if (N != M)
1014  {
1015  std::ostringstream error_message_stream;
1016  error_message_stream << "Can only solve for quadratic matrices\n"
1017  << "N, M " << N << " " << M << std::endl;
1018 
1019  throw OomphLibError(error_message_stream.str(),
1022  }
1023 #endif
1024 
1026  std::complex<double>* b = new std::complex<double>[N];
1027 
1028  // Copy across
1029  for (unsigned long i = 0; i < N; i++)
1030  {
1031  b[i] = rhs[i];
1032  }
1033 
1034  // SuperLU expects compressed column format: Set flag for
1035  // transpose (0/1) = (false/true)
1036  int transpose = 1;
1037 
1038  // Doc (0/1) = (false/true)
1039  int doc = 0;
1040  if (Doc_stats_during_solve) doc = 1;
1041 
1042  // Number of RHSs
1043  int nrhs = 1;
1044 
1045  // Copies so that const-ness is maintained
1046  int n_aux = int(N);
1047  int nnz_aux = int(Nnz);
1048 
1049  // SuperLU in three steps (lu decompose, back subst, cleanup)
1050  // Do the solve phase
1051  int i = 2;
1052  superlu_complex(&i,
1053  &n_aux,
1054  &nnz_aux,
1055  &nrhs,
1056  Value,
1057  Column_index,
1058  Row_start,
1059  b,
1060  &n_aux,
1061  &transpose,
1062  &doc,
1063  &F_factors,
1064  &Info);
1065 
1066  // Copy b into rhs vector
1067  for (unsigned long i = 0; i < N; i++)
1068  {
1069  rhs[i] = b[i];
1070  }
1071 
1072  // Cleanup
1073  delete[] b;
1074  }
Scalar * b
Definition: benchVecAdd.cpp:17
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86

References b, oomph::CRMatrix< std::complex< double > >::Column_index, Doc_stats_during_solve, F_factors, i, Info, int(), oomph::SparseMatrix< T, MATRIX_TYPE >::N, oomph::SparseMatrix< T, MATRIX_TYPE >::Nnz, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::CRMatrix< std::complex< double > >::Row_start, oomph::superlu_complex(), anonymous_namespace{skew_symmetric_matrix3.cpp}::transpose(), and oomph::SparseMatrix< T, MATRIX_TYPE >::Value.

◆ ludecompose()

int oomph::CRComplexMatrix::ludecompose ( )
virtual

LU decomposition using SuperLU.

Do LU decomposition and return sign of determinant.

///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////

Reimplemented from oomph::ComplexMatrixBase.

947  {
948 #ifdef PARANOID
949  if (N != M)
950  {
951  std::ostringstream error_message_stream;
952  error_message_stream << "Can only solve for quadratic matrices\n"
953  << "N, M " << N << " " << M << std::endl;
954 
955  throw OomphLibError(error_message_stream.str(),
958  }
959 #endif
960 
961  // SuperLU expects compressed column format: Set flag for
962  // transpose (0/1) = (false/true)
963  int transpose = 1;
964 
965  // Doc (0/1) = (false/true)
966  int doc = 0;
967  if (Doc_stats_during_solve) doc = 1;
968 
969  // Copies so that const-ness is maintained
970  int n_aux = int(N);
971  int nnz_aux = int(Nnz);
972 
973  // Integer to hold the sign of the determinant
974  int sign = 0;
975 
976  // Just do the lu decompose phase (i=1)
977  int i = 1;
979  &n_aux,
980  &nnz_aux,
981  0,
982  Value,
983  Column_index,
984  Row_start,
985  0,
986  &n_aux,
987  &transpose,
988  &doc,
989  &F_factors,
990  &Info);
991  // Return sign of determinant
992  return sign;
993  }
T sign(T x)
Definition: cxx11_tensor_builtins_sycl.cpp:172

References oomph::CRMatrix< std::complex< double > >::Column_index, Doc_stats_during_solve, F_factors, i, Info, int(), oomph::SparseMatrix< T, MATRIX_TYPE >::N, oomph::SparseMatrix< T, MATRIX_TYPE >::Nnz, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::CRMatrix< std::complex< double > >::Row_start, SYCL::sign(), oomph::superlu_complex(), anonymous_namespace{skew_symmetric_matrix3.cpp}::transpose(), and oomph::SparseMatrix< T, MATRIX_TYPE >::Value.

◆ multiply()

void oomph::CRComplexMatrix::multiply ( const Vector< std::complex< double >> &  x,
Vector< std::complex< double >> &  soln 
)
virtual

Multiply the matrix by the vector x: soln=Ax.

Multiply the matrix by the vector x.

Implements oomph::ComplexMatrixBase.

1171  {
1172 #ifdef PARANOID
1173  // Check to see x.size() = ncol()
1174  if (x.size() != M)
1175  {
1176  std::ostringstream error_message_stream;
1177  error_message_stream << "The x vector is not the right size. It is "
1178  << x.size() << ", it should be " << M << std::endl;
1179 
1180  throw OomphLibError(error_message_stream.str(),
1183  }
1184 #endif
1185 
1186  if (soln.size() != N)
1187  {
1188  // Resize and initialize the solution vector
1189  soln.resize(N);
1190  }
1191  for (unsigned long i = 0; i < N; i++)
1192  {
1193  soln[i] = 0.0;
1194  for (long k = Row_start[i]; k < Row_start[i + 1]; k++)
1195  {
1196  unsigned long j = Column_index[k];
1197  std::complex<double> a_ij = Value[k];
1198  soln[i] += a_ij * x[j];
1199  }
1200  }
1201  }
char char char int int * k
Definition: level2_impl.h:374
list x
Definition: plotDoE.py:28
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References oomph::CRMatrix< std::complex< double > >::Column_index, i, j, k, oomph::SparseMatrix< T, MATRIX_TYPE >::N, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::CRMatrix< std::complex< double > >::Row_start, oomph::SparseMatrix< T, MATRIX_TYPE >::Value, and plotDoE::x.

◆ multiply_transpose()

void oomph::CRComplexMatrix::multiply_transpose ( const Vector< std::complex< double >> &  x,
Vector< std::complex< double >> &  soln 
)
virtual

Multiply the transposed matrix by the vector x: soln=A^T x.

Implements oomph::ComplexMatrixBase.

1209  {
1210 #ifdef PARANOID
1211  // Check to see x.size() = nrow()
1212  if (x.size() != N)
1213  {
1214  std::ostringstream error_message_stream;
1215  error_message_stream << "The x vector is not the right size. It is "
1216  << x.size() << ", it should be " << N << std::endl;
1217 
1218  throw OomphLibError(error_message_stream.str(),
1221  }
1222 #endif
1223 
1224  if (soln.size() != M)
1225  {
1226  // Resize and initialize the solution vector
1227  soln.resize(M);
1228  }
1229 
1230  // Initialise the solution
1231  for (unsigned long i = 0; i < M; i++)
1232  {
1233  soln[i] = 0.0;
1234  }
1235 
1236  // Matrix vector product
1237  for (unsigned long i = 0; i < N; i++)
1238  {
1239  for (long k = Row_start[i]; k < Row_start[i + 1]; k++)
1240  {
1241  unsigned long j = Column_index[k];
1242  std::complex<double> a_ij = Value[k];
1243  soln[j] += a_ij * x[i];
1244  }
1245  }
1246  }
unsigned long M
Number of columns.
Definition: matrices.h:571

References oomph::CRMatrix< std::complex< double > >::Column_index, i, j, k, oomph::SparseMatrix< T, MATRIX_TYPE >::M, oomph::SparseMatrix< T, MATRIX_TYPE >::N, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::CRMatrix< std::complex< double > >::Row_start, oomph::SparseMatrix< T, MATRIX_TYPE >::Value, and plotDoE::x.

◆ ncol()

unsigned long oomph::CRComplexMatrix::ncol ( ) const
inlinevirtual

Return the number of columns of the matrix.

Implements oomph::ComplexMatrixBase.

346  {
347  return CRMatrix<std::complex<double>>::ncol();
348  }
unsigned long ncol() const
Return the number of columns of the matrix.
Definition: complex_matrices.h:345

◆ nrow()

unsigned long oomph::CRComplexMatrix::nrow ( ) const
inlinevirtual

Return the number of rows of the matrix.

Implements oomph::ComplexMatrixBase.

340  {
341  return CRMatrix<std::complex<double>>::nrow();
342  }
unsigned long nrow() const
Return the number of rows of the matrix.
Definition: complex_matrices.h:339

◆ operator()()

std::complex<double> oomph::CRComplexMatrix::operator() ( const unsigned long &  i,
const unsigned long &  j 
) const
inlinevirtual

Overload the round-bracket access operator for read-only access.

Implements oomph::ComplexMatrixBase.

353  {
354  return CRMatrix<std::complex<double>>::get_entry(i, j);
355  }
std::complex< double > get_entry(const unsigned long &i, const unsigned long &j) const
Definition: matrices.h:748

References oomph::CRMatrix< std::complex< double > >::get_entry(), i, and j.

◆ operator=()

void oomph::CRComplexMatrix::operator= ( const CRComplexMatrix )
delete

Broken assignment operator.

◆ residual()

void oomph::CRComplexMatrix::residual ( const Vector< std::complex< double >> &  x,
const Vector< std::complex< double >> &  b,
Vector< std::complex< double >> &  residual 
)
virtual

Find the residual to x of Ax=b, i.e. r=b-Ax.

Find the residulal to x of Ax=b, ie r=b-Ax.

Implements oomph::ComplexMatrixBase.

1123  {
1124 #ifdef PARANOID
1125  // Check that size of rhs = nrow()
1126  if (rhs.size() != N)
1127  {
1128  std::ostringstream error_message_stream;
1129  error_message_stream << "The rhs vector is not the right size. It is "
1130  << rhs.size() << ", it should be " << N << std::endl;
1131 
1132  throw OomphLibError(error_message_stream.str(),
1135  }
1136  // Check that the size of x is correct
1137  if (x.size() != M)
1138  {
1139  std::ostringstream error_message_stream;
1140  error_message_stream << "The x vector is not the right size. It is "
1141  << x.size() << ", it should be " << M << std::endl;
1142 
1143  throw OomphLibError(error_message_stream.str(),
1146  }
1147 #endif
1148 
1149  if (residual.size() != N)
1150  {
1151  residual.resize(N);
1152  }
1153 
1154  for (unsigned long i = 0; i < N; i++)
1155  {
1156  residual[i] = rhs[i];
1157  for (long k = Row_start[i]; k < Row_start[i + 1]; k++)
1158  {
1159  unsigned long j = Column_index[k];
1160  std::complex<double> a_ij = Value[k];
1161  residual[i] -= a_ij * x[j];
1162  }
1163  }
1164  }
void residual(const Vector< std::complex< double >> &x, const Vector< std::complex< double >> &b, Vector< std::complex< double >> &residual)
Find the residual to x of Ax=b, i.e. r=b-Ax.
Definition: complex_matrices.cc:1120

References oomph::CRMatrix< std::complex< double > >::Column_index, i, j, k, oomph::SparseMatrix< T, MATRIX_TYPE >::N, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::CRMatrix< std::complex< double > >::Row_start, oomph::SparseMatrix< T, MATRIX_TYPE >::Value, and plotDoE::x.

Member Data Documentation

◆ Doc_stats_during_solve

bool oomph::CRComplexMatrix::Doc_stats_during_solve
protected

Flag to indicate if stats are to be displayed during solution of linear system with SuperLU

Referenced by clean_up_memory(), CRComplexMatrix(), disable_doc_stats(), enable_doc_stats(), lubksub(), and ludecompose().

◆ F_factors

void* oomph::CRComplexMatrix::F_factors
private

Storage for the LU factors as required by SuperLU.

Referenced by clean_up_memory(), lubksub(), and ludecompose().

◆ Info

int oomph::CRComplexMatrix::Info
private

Info flag for the SuperLU solver.

Referenced by clean_up_memory(), lubksub(), and ludecompose().


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