Note: this is documentation for an old release. View the latest documentation at docs.fenicsproject.org/v0.1.0/v0.9.0/cpp
DOLFINx  0.1.0
DOLFINx C++ interface
PETScOperator.h
1 // Copyright (C) 2005-2018 Anders Logg and Garth N. Wells
2 //
3 // This file is part of DOLFINx (https://www.fenicsproject.org)
4 //
5 // SPDX-License-Identifier: LGPL-3.0-or-later
6 
7 #pragma once
8 
9 #include <array>
10 #include <petscmat.h>
11 #include <stdint.h>
12 
13 namespace dolfinx::la
14 {
15 class PETScVector;
16 
19 
21 {
22 public:
24  PETScOperator(Mat A, bool inc_ref_count);
25 
26  // Copy constructor (deleted)
27  PETScOperator(const PETScOperator& A) = delete;
28 
31 
33  virtual ~PETScOperator();
34 
36  PETScOperator& operator=(const PETScOperator& A) = delete;
37 
40 
43  std::array<std::int64_t, 2> size() const;
44 
50  PETScVector create_vector(std::size_t dim) const;
51 
53  Mat mat() const;
54 
55 protected:
56  // PETSc Mat pointer
57  Mat _matA;
58 };
59 } // namespace dolfinx::la
dolfinx::la::PETScOperator::mat
Mat mat() const
Return PETSc Mat pointer.
Definition: PETScOperator.cpp:82
dolfinx::la::PETScOperator::create_vector
PETScVector create_vector(std::size_t dim) const
Initialize vector to be compatible with the matrix-vector product y = Ax. In the parallel case,...
Definition: PETScOperator.cpp:54
dolfinx::la::PETScOperator::~PETScOperator
virtual ~PETScOperator()
Destructor.
Definition: PETScOperator.cpp:29
dolfinx::la
Linear algebra interface.
Definition: sparsitybuild.h:14
dolfinx::la::PETScVector
A simple wrapper for a PETSc vector pointer (Vec). Its main purpose is to assist with memory/lifetime...
Definition: PETScVector.h:95
dolfinx::la::PETScOperator::operator=
PETScOperator & operator=(const PETScOperator &A)=delete
Assignment operator (deleted)
dolfinx::la::PETScOperator::size
std::array< std::int64_t, 2 > size() const
Return number of rows and columns (num_rows, num_cols). PETSc returns -1 if size has not been set.
Definition: PETScOperator.cpp:44
dolfinx::la::PETScOperator::PETScOperator
PETScOperator(Mat A, bool inc_ref_count)
Constructor.
Definition: PETScOperator.cpp:17
dolfinx::la::PETScOperator
This class is a base class for matrices that can be used in PETScKrylovSolver.
Definition: PETScOperator.h:20