164 if (!
v3.getRawVector())
198void set(EigenVector& x,
double const a)
200 x.getRawVector().setConstant(a);
203void copy(EigenVector
const& x, EigenVector& y)
208void scale(EigenVector& x,
double const a)
210 x.getRawVector() *= a;
214void aypx(EigenVector& y,
double const a, EigenVector
const& x)
217 y.getRawVector() = a * y.getRawVector() + x.getRawVector();
221void axpy(EigenVector& y,
double const a, EigenVector
const& x)
224 y.getRawVector() += a * x.getRawVector();
228void axpby(EigenVector& y,
double const a,
double const b, EigenVector
const& x)
231 y.getRawVector() = a * x.getRawVector() + b * y.getRawVector();
238 EigenVector
const& y)
240 w.getRawVector().noalias() = x.getRawVector().binaryExpr(
242 [](
auto const x,
auto const y) { return y == 0 ? 0.0 : x / y; });
248double norm1(EigenVector
const& x)
250 return x.getRawVector().lpNorm<1>();
256double norm2(EigenVector
const& x)
258 return x.getRawVector().norm();
264double normMax(EigenVector
const& x)
266 return x.getRawVector().lpNorm<Eigen::Infinity>();
271void copy(EigenMatrix
const& A, EigenMatrix& B)
277void scale(EigenMatrix& A,
double const a)
280 A.getRawMatrix() *= a;
284void aypx(EigenMatrix& Y,
double const a, EigenMatrix
const& X)
287 Y.getRawMatrix() = a * Y.getRawMatrix() + X.getRawMatrix();
291void axpy(EigenMatrix& Y,
double const a, EigenMatrix
const& X)
294 Y.getRawMatrix() = a * X.getRawMatrix() + Y.getRawMatrix();
300void matMult(EigenMatrix
const& A, EigenVector
const& x, EigenVector& y)
303 y.getRawVector() = A.getRawMatrix() * x.getRawVector();
307void matMultAdd(EigenMatrix
const& A, EigenVector
const&
v1,
308 EigenVector
const&
v2, EigenVector&
v3)
313 v2.getRawVector() + A.getRawMatrix() *
v1.getRawVector();
318 x.getRawMatrix().makeCompressed();
Declaration of class PETScMatrix, which provides an interface to PETSc matrix routines.
Declaration of class PETScVector, which provides an interface to PETSc vector routines.
Wrapper class for PETSc matrix routines for matrix.
Mat & getRawMatrix()
Get matrix reference.
void finalizeAssembly(const MatAssemblyType asm_type=MAT_FINAL_ASSEMBLY)
Perform MPI collection of assembled entries in buffer.
Wrapper class for PETSc vector.
void finalizeAssembly()
Perform MPI collection of assembled entries in buffer.
void setLocalAccessibleVector() const
void shallowCopy(const PETScVector &v)
PETSc_Vec & getRawVector()
Exposes the underlying PETSc vector.
double norm(MatrixOrVector const &x, MathLib::VecNormType type)
void finalizeAssembly(PETScMatrix &A)
double norm1(PETScVector const &x)
double normMax(PETScVector const &x)
void copy(PETScVector const &x, PETScVector &y)
void componentwiseDivide(PETScVector &w, PETScVector const &x, PETScVector const &y)
void setLocalAccessibleVector(PETScVector const &x)
void set(PETScVector &x, PetscScalar const a)
void matMult(PETScMatrix const &A, PETScVector const &x, PETScVector &y)
void matMultAdd(PETScMatrix const &A, PETScVector const &v1, PETScVector const &v2, PETScVector &v3)
double norm2(PETScVector const &x)
void scale(PETScVector &x, PetscScalar const a)
void aypx(PETScVector &y, PetscScalar const a, PETScVector const &x)
void axpy(PETScVector &y, PetscScalar const a, PETScVector const &x)
void axpby(PETScVector &y, PetscScalar const a, PetscScalar const b, PETScVector const &x)