ESScript  Revision_
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
paso::SystemMatrixAdapter Class Reference

#include <SystemMatrixAdapter.h>

Public Member Functions

 SystemMatrixAdapter ()
 Wrapper for Paso_SystemMatrix.
 SystemMatrixAdapter (Paso_SystemMatrix *system_matrix, const int row_blocksize, const escript::FunctionSpace &row_functionspace, const int column_blocksize, const escript::FunctionSpace &colum_functionspace)
 ~SystemMatrixAdapter ()
 Destructor for SystemMatrixAdapter. As specified in the constructor this deallocates the pointer given to the constructor.
Paso_SystemMatrixgetPaso_SystemMatrix () const
 Returns the pointer to the system matrix.
const
escript::AbstractSystemMatrix & 
asAbstractSystemMatrix () const
 Returns the system matrix as a const AbstractSystemMatrix&.
void nullifyRowsAndCols (escript::Data &row_q, escript::Data &col_q, const double mdv) const
 nullifyRowsAndCols - calls Paso_SystemMatrix_nullifyRowsAndCols.
virtual void saveMM (const std::string &fileName) const
 writes the matrix to a file using the Matrix Market file format
virtual void saveHB (const std::string &fileName) const
 writes the matrix to a file using the Harwell-Boeing file format
virtual void resetValues () const
 sets the matrix entries to zero
void Print_Matrix_Info (const bool) const
 prints information about a system matrix

Static Public Member Functions

static const SystemMatrixAdapterasSystemMatrixAdapter (const AbstractSystemMatrix &systemmatrix)
 Returns a system matrix as a const SystemMatrixAdapter&.
static int mapOptionToPaso (const int option)
 maps escript options onto Paso options
static int getSystemMatrixTypeId (const int solver, const int preconditioner, const int package, const bool symmetry, Esys_MPIInfo *mpiInfo)
 returns the identifier of the matrix type to be used for the global stiffness matrix when the given solver, preconditioner and package is used
static void escriptToPasoOptions (Paso_Options *paso_options, const boost::python::object &options)
 extract paso options from SolutionOptions class
static void pasoToEscriptOptions (const Paso_Options *paso_options, boost::python::object &options)
 copies diagnostic data back to the solver options

Private Member Functions

virtual void setToSolution (escript::Data &out, escript::Data &in, boost::python::object &options) const
 solves the linear system this*out=in
virtual void ypAx (escript::Data &y, escript::Data &x) const
 performs y+=this*x

Private Attributes

boost::shared_ptr
< Paso_SystemMatrix
m_system_matrix

Constructor & Destructor Documentation

paso::SystemMatrixAdapter::SystemMatrixAdapter ( )

Wrapper for Paso_SystemMatrix.

Description: Wrapper for Paso_SystemMatrix. /brief Default Constructor for SystemMatrixAdapter. NB: Only throws an exception.

paso::SystemMatrixAdapter::SystemMatrixAdapter ( Paso_SystemMatrix system_matrix,
const int  row_blocksize,
const escript::FunctionSpace &  row_functionspace,
const int  column_blocksize,
const escript::FunctionSpace &  colum_functionspace 
)

/brief Constructor for SystemMatrixAdapter.

References m_system_matrix.

paso::SystemMatrixAdapter::~SystemMatrixAdapter ( )

Destructor for SystemMatrixAdapter. As specified in the constructor this deallocates the pointer given to the constructor.

References m_system_matrix, and Paso_SystemMatrix_free().

Member Function Documentation

const escript::AbstractSystemMatrix& paso::SystemMatrixAdapter::asAbstractSystemMatrix ( ) const
inline

Returns the system matrix as a const AbstractSystemMatrix&.

static const SystemMatrixAdapter& paso::SystemMatrixAdapter::asSystemMatrixAdapter ( const AbstractSystemMatrix &  systemmatrix)
inlinestatic

Returns a system matrix as a const SystemMatrixAdapter&.

void paso::SystemMatrixAdapter::escriptToPasoOptions ( Paso_Options paso_options,
const boost::python::object &  options 
)
static

extract paso options from SolutionOptions class

References EXTRACT, EXTRACT_OPTION, and Paso_Options_setDefaults().

Referenced by paso::TransportProblemAdapter::setToSolution(), and setToSolution().

Paso_SystemMatrix * paso::SystemMatrixAdapter::getPaso_SystemMatrix ( ) const
int paso::SystemMatrixAdapter::getSystemMatrixTypeId ( const int  solver,
const int  preconditioner,
const int  package,
const bool  symmetry,
Esys_MPIInfo mpiInfo 
)
static

returns the identifier of the matrix type to be used for the global stiffness matrix when the given solver, preconditioner and package is used

References paso::checkPasoError(), mapOptionToPaso(), and Paso_SystemMatrix_getSystemMatrixTypeId().

int paso::SystemMatrixAdapter::mapOptionToPaso ( const int  option)
static
void paso::SystemMatrixAdapter::nullifyRowsAndCols ( escript::Data &  row_q,
escript::Data &  col_q,
const double  mdv 
) const

nullifyRowsAndCols - calls Paso_SystemMatrix_nullifyRowsAndCols.

References paso::checkPasoError(), getPaso_SystemMatrix(), and Paso_SystemMatrix_nullifyRowsAndCols().

Referenced by BOOST_PYTHON_MODULE().

void paso::SystemMatrixAdapter::pasoToEscriptOptions ( const Paso_Options paso_options,
boost::python::object &  options 
)
static

copies diagnostic data back to the solver options

References SET.

Referenced by paso::TransportProblemAdapter::setToSolution(), and setToSolution().

void paso::SystemMatrixAdapter::Print_Matrix_Info ( const bool  full = false) const
void paso::SystemMatrixAdapter::resetValues ( ) const
virtual
void paso::SystemMatrixAdapter::saveHB ( const std::string &  fileName) const
virtual

writes the matrix to a file using the Harwell-Boeing file format

References paso::checkPasoError(), getPaso_SystemMatrix(), Paso_SystemMatrix_saveHB(), TMPMEMALLOC, and TMPMEMFREE.

Referenced by BOOST_PYTHON_MODULE().

void paso::SystemMatrixAdapter::saveMM ( const std::string &  fileName) const
virtual

writes the matrix to a file using the Matrix Market file format

References paso::checkPasoError(), getPaso_SystemMatrix(), Paso_SystemMatrix_saveMM(), TMPMEMALLOC, and TMPMEMFREE.

Referenced by BOOST_PYTHON_MODULE().

void paso::SystemMatrixAdapter::setToSolution ( escript::Data &  out,
escript::Data &  in,
boost::python::object &  options 
) const
privatevirtual
void paso::SystemMatrixAdapter::ypAx ( escript::Data &  y,
escript::Data &  x 
) const
privatevirtual

Member Data Documentation

boost::shared_ptr<Paso_SystemMatrix> paso::SystemMatrixAdapter::m_system_matrix
private

The documentation for this class was generated from the following files: