14#ifndef _DENSE_MATRIX_H
15#define _DENSE_MATRIX_H
30 DenseMatrix(
size_t m = 0,
size_t n = 0,
bool s =
false);
48 bool redim(
size_t r,
size_t c);
56 virtual size_t dim(
int idim)
const
130 virtual bool add(
Real sigma,
int ieq);
190 virtual bool load(
const char* fileName,
bool binary);
216 virtual std::ostream&
write(std::ostream& os)
const {
return os <<
myMat; }
std::vector< int > IntVec
General integer vector.
Definition ASMbase.h:25
DenseMatrix operator*(Real alpha, const DenseMatrix &A)
Multiply a matrix with a scalar.
Definition DenseMatrix.C:709
#define Real
The floating point type to use.
Definition ImmersedBoundaries.h:18
std::vector< Real > RealArray
A real-valued array without algebraic operations.
Definition ImmersedBoundaries.h:32
General representation of system matrices and vectors.
Class for representing a dense system matrix.
Definition DenseMatrix.h:27
virtual bool assemble(const Matrix &eM, const SAM &sam, int e)
Adds an element matrix into the associated system matrix.
Definition DenseMatrix.C:312
bool redim(size_t r, size_t c)
Resizes the matrix to dimension .
Definition DenseMatrix.C:454
const Real & operator()(size_t r, size_t c) const
Index-1 based element reference.
Definition DenseMatrix.h:66
Matrix myMat
The actual dense matrix.
Definition DenseMatrix.h:219
virtual ~DenseMatrix()
The destructor frees the dynamically allocated arrays.
Definition DenseMatrix.h:38
virtual std::ostream & write(std::ostream &os) const
Writes the system matrix to the given output stream.
Definition DenseMatrix.h:216
virtual bool add(const SystemMatrix &B, Real alpha)
Adds a matrix with similar dimension to the current matrix.
Definition DenseMatrix.C:476
virtual bool augment(const SystemMatrix &B, size_t r0, size_t c0)
Augments a similar matrix symmetrically to the current matrix.
Definition DenseMatrix.C:404
virtual void mult(Real alpha)
Multiplication with a scalar.
Definition DenseMatrix.h:122
Real & operator()(size_t r, size_t c)
Index-1 based element access.
Definition DenseMatrix.h:64
bool solveEig(RealArray &eigVal, Matrix &eigVec, int nev)
Solves a standard symmetric-definite eigenproblem.
Definition DenseMatrix.C:582
bool solveEigNon(RealArray &r_val, RealArray &c_val)
Solves a non-symmetric eigenproblem.
Definition DenseMatrix.C:676
virtual bool load(const char *fileName, bool binary)
Loads the system matrix from specified file.
Definition DenseMatrix.C:151
virtual bool solve(SystemVector &B, Real *rc=nullptr)
Solves the linear system of equations for a given right-hand-side.
Definition DenseMatrix.C:515
virtual SystemMatrix * copy() const
Creates a copy of the system matrix and returns a pointer to it.
Definition DenseMatrix.h:44
virtual void initAssembly(const SAM &sam, char)
Initializes the element assembly process.
Definition DenseMatrix.C:79
virtual size_t dim(int idim) const
Returns the dimension of the system matrix.
Definition DenseMatrix.h:56
virtual Real Linfnorm() const
Returns the L-infinity norm of the matrix.
Definition DenseMatrix.h:187
virtual LinAlg::MatrixType getType() const
Returns the matrix type.
Definition DenseMatrix.h:41
int * ipiv
Pivot indices used in solve.
Definition DenseMatrix.h:220
virtual void dump(std::ostream &os, LinAlg::StorageFormat format, const char *label)
Dumps the system matrix on a specified format.
Definition DenseMatrix.C:95
void setSymmetric(bool s=true)
Marks the matrix as symmetric.
Definition DenseMatrix.h:52
bool symm
Flags whether the matrix is symmetric or not.
Definition DenseMatrix.h:221
virtual bool multiply(const SystemVector &B, SystemVector &C) const
Performs the matrix-vector multiplication C = *this * B.
Definition DenseMatrix.C:504
virtual void init()
Initializes the matrix to zero assuming it is properly dimensioned.
Definition DenseMatrix.C:85
Matrix & getMat()
Access to the matrix itself.
Definition DenseMatrix.h:62
This class contains data and functions for the assembly of FE matrices.
Definition SAM.h:39
Class for representing a system matrix on an unstructured sparse form.
Definition SparseMatrix.h:38
Base class for representing a system matrix on different formats.
Definition SystemMatrix.h:220
virtual bool solve(SystemVector &b, Real *rc=nullptr)=0
Solves the linear system of equations for a given right-hand-side.
Base class for representing a system vector on different formats.
Definition SystemMatrix.h:32
size_t dim(short int d=1) const
Query dimensions.
Definition matrix.h:376
size_t size() const
Query total matrix size.
Definition matrix.h:378
size_t cols() const
Query number of matrix columns.
Definition matrix.h:572
T normInf() const
Return the infinite norm of the matrix.
Definition matrix.h:962
matrix< T > & multiply(T c)
Multiplication of this matrix by a scalar c.
Definition matrix.h:885
size_t rows() const
Query number of matrix rows.
Definition matrix.h:570
MatrixType
The available system matrix formats and associated solvers.
Definition LinAlgenums.h:22
@ DENSE
Dense matrices / LAPack solver.
Definition LinAlgenums.h:23
StorageFormat
Enumeration of matrix storage formats.
Definition LinAlgenums.h:43