OGS
LinAlg.h File Reference

Detailed Description

Definition in file LinAlg.h.

#include <cassert>
#include "BaseLib/Error.h"
#include "LinAlgEnums.h"
#include <petscsystypes.h>
#include "PETSc/PETScVector.h"
Include dependency graph for LinAlg.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  MathLib
 
namespace  MathLib::LinAlg
 

Functions

template<typename MatrixOrVector >
void MathLib::LinAlg::copy (MatrixOrVector const &x, MatrixOrVector &y)
 Copies x to y.
 
template<typename MatrixOrVector >
void MathLib::LinAlg::scale (MatrixOrVector &x, double const a)
 Scales x by a.
 
template<typename MatrixOrVector >
void MathLib::LinAlg::aypx (MatrixOrVector &y, double const a, MatrixOrVector const &x)
 Computes \( y = a \cdot y + x \).
 
template<typename MatrixOrVector >
void MathLib::LinAlg::axpy (MatrixOrVector &y, double const a, MatrixOrVector const &x)
 Computes \( y = a \cdot x + y \).
 
template<typename MatrixOrVector >
void MathLib::LinAlg::axpby (MatrixOrVector &y, double const a, double const b, MatrixOrVector const &x)
 Computes \( y = a \cdot x + b \cdot y \).
 
template<typename MatrixOrVector >
void MathLib::LinAlg::componentwiseDivide (MatrixOrVector &w, MatrixOrVector const &x, MatrixOrVector const &y)
 Computes \(w = x/y\) componentwise.
 
template<typename MatrixOrVector >
double MathLib::LinAlg::norm1 (MatrixOrVector const &x)
 Computes the Manhattan norm of x.
 
template<typename MatrixOrVector >
double MathLib::LinAlg::norm2 (MatrixOrVector const &x)
 Computes the Euclidean norm of x.
 
template<typename MatrixOrVector >
double MathLib::LinAlg::normMax (MatrixOrVector const &x)
 Computes the maximum norm of x.
 
template<typename MatrixOrVector >
double MathLib::LinAlg::norm (MatrixOrVector const &x, MathLib::VecNormType type)
 
template<typename Matrix >
void MathLib::LinAlg::finalizeAssembly (Matrix &)
 
template<typename Matrix , typename Vector >
void MathLib::LinAlg::matMult (Matrix const &A, Vector const &x, Vector &y)
 
template<typename Matrix , typename Vector >
void MathLib::LinAlg::matMultAdd (Matrix const &A, Vector const &v1, Vector const &v2, Vector &v3)
 
void MathLib::LinAlg::setLocalAccessibleVector (PETScVector const &x)
 
void MathLib::LinAlg::set (PETScVector &x, PetscScalar const a)
 
void MathLib::LinAlg::copy (PETScVector const &x, PETScVector &y)
 
void MathLib::LinAlg::scale (PETScVector &x, PetscScalar const a)
 
void MathLib::LinAlg::aypx (PETScVector &y, PetscScalar const a, PETScVector const &x)
 
void MathLib::LinAlg::axpy (PETScVector &y, PetscScalar const a, PETScVector const &x)
 
void MathLib::LinAlg::axpby (PETScVector &y, PetscScalar const a, PetscScalar const b, PETScVector const &x)
 
void MathLib::LinAlg::copy (PETScMatrix const &A, PETScMatrix &B)
 
void MathLib::LinAlg::scale (PETScMatrix &A, PetscScalar const a)
 
void MathLib::LinAlg::aypx (PETScMatrix &Y, PetscScalar const a, PETScMatrix const &X)
 
void MathLib::LinAlg::axpy (PETScMatrix &Y, PetscScalar const a, PETScMatrix const &X)
 
void MathLib::LinAlg::matMult (PETScMatrix const &A, PETScVector const &x, PETScVector &y)
 
void MathLib::LinAlg::matMultAdd (PETScMatrix const &A, PETScVector const &v1, PETScVector const &v2, PETScVector &v3)
 
void MathLib::LinAlg::linearSysNormalize (PETScMatrix const &, PETScMatrix &, PETScVector const &, PETScVector &)
 
void MathLib::LinAlg::finalizeAssembly (PETScMatrix &A)
 
void MathLib::LinAlg::finalizeAssembly (PETScVector &x)
 
template<typename VectorType >
double MathLib::LinAlg::computeRelativeNorm (VectorType const &x, VectorType const &y, MathLib::VecNormType norm_type)