concepts::BelosLinProb< T, MV, OP > Class Template Reference

Decorator that decorates the Class Belos::LinearProblem<T, MV, OP> with interfaces to Concepts SparseMatrix and Vector. More...

#include <belosLinProb.hh>

Inheritance diagram for concepts::BelosLinProb< T, MV, OP >:

Public Member Functions

 BelosLinProb ()
 Default Constructor. More...
 
 BelosLinProb (concepts::SparseMatrix< T > &sparse, Teuchos::RCP< const Teuchos::Comm< int > > comm)
 Copies the informations of a concepts::SparseMatrix into a Tpetra::CrsMatrix and sets it to the operator of the problem. More...
 
 BelosLinProb (Teuchos::RCP< const Teuchos::Comm< int > > comm)
 Copies the informations of a concepts::SparseMatrix into a Tpetra::CrsMatrix and sets it to the Operator of the problem. More...
 
Teuchos::RCP< Tpetra::CrsMatrix< T, int, int > > getCrsMat ()
 Getter for CRS matrix used for preconditoner. More...
 
void setConceptsRHS (const Vector< T > &rhs, Teuchos::RCP< const Teuchos::Comm< int > > comm)
 Copies the informations of a concepts::Vector into a Tpetra::Multivector and sets it to the rhs vector of the problem. More...
 
void setConceptsRHS (Teuchos::RCP< const Teuchos::Comm< int > > comm)
 Copies the informations of a concepts::Vector into a Tpetra::Multivector and sets it to the rhs vector of the problem. More...
 
void setCrsMat (Teuchos::RCP< Tpetra::CrsMatrix< T, int, int > > A)
 Setter for CRS matrix. More...
 
void writeSolution (Teuchos::RCP< const Teuchos::Comm< int > > comm)
 Copies the solution vector of this problem in a concepts::Vector. More...
 
void writeSolution (Vector< T > &vec, Teuchos::RCP< const Teuchos::Comm< int > > comm)
 Copies the solution vector of this problem in a concepts::Vector If started parallel this method should just be used by threads with id != 0. More...
 
virtual ~BelosLinProb ()
 Default Destructor. More...
 

Private Attributes

Teuchos::RCP< Tpetra::CrsMatrix< T, int, int > > A_
 matrix of the problem More...
 

Detailed Description

template<class T, class MV = Tpetra::MultiVector<T, int>, class OP = Tpetra::Operator<T>>
class concepts::BelosLinProb< T, MV, OP >

Decorator that decorates the Class Belos::LinearProblem<T, MV, OP> with interfaces to Concepts SparseMatrix and Vector.

Author
Christian Heier, TUB, 2012

Definition at line 26 of file belosLinProb.hh.

Constructor & Destructor Documentation

◆ BelosLinProb() [1/3]

template<class T , class MV = Tpetra::MultiVector<T, int>, class OP = Tpetra::Operator<T>>
concepts::BelosLinProb< T, MV, OP >::BelosLinProb ( )
inline

Default Constructor.

Definition at line 30 of file belosLinProb.hh.

◆ ~BelosLinProb()

template<class T , class MV = Tpetra::MultiVector<T, int>, class OP = Tpetra::Operator<T>>
virtual concepts::BelosLinProb< T, MV, OP >::~BelosLinProb ( )
inlinevirtual

Default Destructor.

Definition at line 35 of file belosLinProb.hh.

◆ BelosLinProb() [2/3]

template<class T , class MV , class OP >
concepts::BelosLinProb< T, MV, OP >::BelosLinProb ( Teuchos::RCP< const Teuchos::Comm< int > >  comm)

Copies the informations of a concepts::SparseMatrix into a Tpetra::CrsMatrix and sets it to the Operator of the problem.

If started parallel this method should just be used by the threads with id != 0. If started sequentiell use the other Constructor.

@waring The thread with id 0 must be called with BelosLinProb(concepts::SparseMatrix<T>& sparse, Teuchos::RCP<const Teuchos::Comm<int> > comm) otherwise the recieve operation in this method will cause a DEADLOCK.

Definition at line 323 of file belosLinProb.hh.

◆ BelosLinProb() [3/3]

template<class T , class MV , class OP >
concepts::BelosLinProb< T, MV, OP >::BelosLinProb ( concepts::SparseMatrix< T > &  sparse,
Teuchos::RCP< const Teuchos::Comm< int > >  comm 
)

Copies the informations of a concepts::SparseMatrix into a Tpetra::CrsMatrix and sets it to the operator of the problem.

If started parallel this method should just be used by the thread with id 0. All other threads must use BelosLinProb(Teuchos::RCP<const Teuchos::Comm<int> > comm), they recieve the informations of the seriell object concepts::SparseMatrix via this method

Warning
if the other threads do not call BelosLinProb(Teuchos::RCP<const Teuchos::Comm<int> > comm) the send() instruction in this constructor will cause a DEADLOCK.

Definition at line 126 of file belosLinProb.hh.

Member Function Documentation

◆ getCrsMat()

template<class T , class MV = Tpetra::MultiVector<T, int>, class OP = Tpetra::Operator<T>>
Teuchos::RCP<Tpetra::CrsMatrix<T, int, int> > concepts::BelosLinProb< T, MV, OP >::getCrsMat ( )
inline

Getter for CRS matrix used for preconditoner.

Definition at line 109 of file belosLinProb.hh.

◆ setConceptsRHS() [1/2]

template<class T , class MV , class OP >
void concepts::BelosLinProb< T, MV, OP >::setConceptsRHS ( const Vector< T > &  rhs,
Teuchos::RCP< const Teuchos::Comm< int > >  comm 
)

Copies the informations of a concepts::Vector into a Tpetra::Multivector and sets it to the rhs vector of the problem.

If started parallel this method should just be used by the thread with id 0. All other threads must use setRHS(Teuchos::RCP<const Teuchos::Comm<int> > comm), they recieve the informations of the seriell object concepts::Vector via this method

Warning
if the other threads do not call setRHS(Teuchos::RCP<const Teuchos::Comm<int> > comm) the send() instruction will cause a DEADLOCK.

Definition at line 425 of file belosLinProb.hh.

◆ setConceptsRHS() [2/2]

template<class T , class MV , class OP >
void concepts::BelosLinProb< T, MV, OP >::setConceptsRHS ( Teuchos::RCP< const Teuchos::Comm< int > >  comm)

Copies the informations of a concepts::Vector into a Tpetra::Multivector and sets it to the rhs vector of the problem.

If started parallel this method should just be used by threads with id != 0.

@waring The threads with id 0 must be called with void setRHS(Vector<T>& rhs, Teuchos::RCP<const Teuchos::Comm<int> > comm); otherwise the recieve operation in this method will cause a DEADLOCK.

Definition at line 494 of file belosLinProb.hh.

◆ setCrsMat()

template<class T , class MV = Tpetra::MultiVector<T, int>, class OP = Tpetra::Operator<T>>
void concepts::BelosLinProb< T, MV, OP >::setCrsMat ( Teuchos::RCP< Tpetra::CrsMatrix< T, int, int > >  A)
inline

Setter for CRS matrix.

Definition at line 114 of file belosLinProb.hh.

◆ writeSolution() [1/2]

template<class T , class MV , class OP >
void concepts::BelosLinProb< T, MV, OP >::writeSolution ( Teuchos::RCP< const Teuchos::Comm< int > >  comm)

Copies the solution vector of this problem in a concepts::Vector.

If started parallel this method should just be used by threads with id != 0.

@waring The threads with id 0 must be called with void writeSolution(Vector<T>& vec, Teuchos::RCP<const Teuchos::Comm<int> > comm) otherwise the recieve operation in this method will cause a DEADLOCK.

Definition at line 581 of file belosLinProb.hh.

◆ writeSolution() [2/2]

template<class T , class MV , class OP >
void concepts::BelosLinProb< T, MV, OP >::writeSolution ( Vector< T > &  vec,
Teuchos::RCP< const Teuchos::Comm< int > >  comm 
)

Copies the solution vector of this problem in a concepts::Vector If started parallel this method should just be used by threads with id != 0.

Warning
if the other threads do not call writeSolution(Teuchos::RCP<const Teuchos::Comm<int> > comm) the send() instruction will cause a DEADLOCK.

Definition at line 543 of file belosLinProb.hh.

Member Data Documentation

◆ A_

template<class T , class MV = Tpetra::MultiVector<T, int>, class OP = Tpetra::Operator<T>>
Teuchos::RCP<Tpetra::CrsMatrix<T, int, int> > concepts::BelosLinProb< T, MV, OP >::A_
private

matrix of the problem

Definition at line 122 of file belosLinProb.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich