dune-fem  2.4.1-rc
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject > Class Template Reference

LocalMatrix. More...

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/operator/matrix/spmatrix.hh>

Inheritance diagram for Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >:
Inheritance graph

Public Types

typedef MatrixObject MatrixObjectType
 type of matrix object More...
 
typedef LocalMatrixTraits< MatrixObjectTypeTraits
 type of the traits More...
 
typedef MatrixObjectType::MatrixType MatrixType
 type of matrix More...
 
typedef Traits::RangeFieldType RangeFieldType
 type of entries of little blocks More...
 
typedef RangeFieldType DofType
 type of the DoFs More...
 
typedef Traits::LittleBlockType LittleBlockType
 type of little blocks More...
 
typedef Traits::DomainMapperType DomainMapperType
 type of nonblocked domain mapper More...
 
typedef Traits::RangeMapperType RangeMapperType
 type of nonblocked domain mapper More...
 
typedef BaseType::DomainSpaceType DomainSpaceType
 
typedef BaseType::RangeSpaceType RangeSpaceType
 
typedef BaseType::DomainBasisFunctionSetType DomainBasisFunctionSetType
 
typedef BaseType::RangeBasisFunctionSetType RangeBasisFunctionSetType
 
typedef BaseType::DomainEntityType DomainEntityType
 
typedef BaseType::RangeEntityType RangeEntityType
 
typedef ThisType LocalMatrixInterfaceType
 type of this interface More...
 
typedef Traits::LocalMatrixType LocalMatrixType
 type of local matrix implementation More...
 
typedef MatrixColumnObject< TraitsMatrixColumnType
 

Public Member Functions

 LocalMatrix (const MatrixObjectType &matrixObject, const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace, const DomainMapperType &domainMapper, const RangeMapperType &rangeMapper)
 
 LocalMatrix (const LocalMatrix &)=delete
 
void init (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity)
 
int rows () const
 return number of rows More...
 
int columns () const
 return number of columns More...
 
void add (int localRow, int localCol, const DofType value)
 add value to matrix entry More...
 
DofType get (int localRow, int localCol) const
 get matrix entry More...
 
void set (int localRow, int localCol, const DofType value)
 set matrix entry to value More...
 
void unitRow (const int localRow)
 set matrix row to zero except diagonla entry More...
 
void clearRow (const int localRow)
 set matrix row to zero More...
 
void clearCol (const int localCol)
 set matrix column to zero More...
 
void clear ()
 clear all entries belonging to local matrix More...
 
void scale (const DofType &value)
 scale local matrix with a certain value More...
 
void resort ()
 resort all global rows of matrix to have ascending numbering More...
 
void finalize ()
 finalize local matrix setup and possibly add values to real matrix More...
 
const DomainSpaceTypedomainSpace () const
 access to the domain space More...
 
const RangeSpaceTyperangeSpace () const
 access to the range space More...
 
const DomainBasisFunctionSetTypedomainBasisFunctionSet () const
 access to the base function set within the domain space More...
 
const RangeBasisFunctionSetTyperangeBasisFunctionSet () const
 access to the base function set within the range space More...
 
const DomainEntityTypedomainEntity () const
 
const RangeEntityTyperangeEntity () const
 
void multiplyAdd (const DomainLocalFunctionType &lhs, RangeLocalFunctionType &rhs) const
 multiply left hand side with local matrix and add to right hand side rhs += Matrix * lhs More...
 
void add (const int localRow, const int localCol, const RangeFieldType &value)
 add value to matrix entry (row,col) where row and col are local row and local column More...
 
void set (const int localRow, const int localCol, const RangeFieldType &value)
 set value of matrix entry (row,col) where row and col are local row and local column More...
 
void scale (const RangeFieldType &scalar)
 scale matrix with scalar value More...
 
MatrixColumnType column (const unsigned int col)
 return column object for local matrix which contains axpy methods for convenience More...
 

Protected Types

typedef std::vector< typename RangeMapperType::SizeType > RowIndicesType
 
typedef std::vector< typename DomainMapperType::SizeType > ColumnIndicesType
 

Protected Member Functions

const LocalMatrixTraits< MatrixObject >::LocalMatrixTypeasImp () const
 
LocalMatrixTraits< MatrixObject >::LocalMatrixTypeasImp ()
 

Static Protected Member Functions

static const LocalMatrixTraits< MatrixObject >::LocalMatrixTypeasImp (const ThisType &other)
 
static LocalMatrixTraits< MatrixObject >::LocalMatrixTypeasImp (ThisType &other)
 

Protected Attributes

MatrixTypematrix_
 
const DomainMapperTypedomainMapper_
 
const RangeMapperTyperangeMapper_
 
RowIndicesType rowIndices_
 global index in the DomainSpace More...
 
ColumnIndicesType columnIndices_
 global index in the RangeSpace More...
 
const DomainSpaceTypedomainSpace_
 
const RangeSpaceTyperangeSpace_
 
DomainBasisFunctionSetType domainBaseSet_
 
RangeBasisFunctionSetType rangeBaseSet_
 

Detailed Description

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject>
class Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >

LocalMatrix.

Member Typedef Documentation

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef std :: vector< typename DomainMapperType :: SizeType > Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::ColumnIndicesType
protected
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef RangeFieldType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::DofType

type of the DoFs

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef Traits :: DomainMapperType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::DomainMapperType

type of nonblocked domain mapper

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef Traits :: LittleBlockType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::LittleBlockType

type of little blocks

type of this interface

type of local matrix implementation

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef MatrixObject Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::MatrixObjectType

type of matrix object

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef MatrixObjectType :: MatrixType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::MatrixType

type of matrix

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef Traits :: RangeFieldType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::RangeFieldType

type of entries of little blocks

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef Traits :: RangeMapperType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::RangeMapperType

type of nonblocked domain mapper

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef std :: vector< typename RangeMapperType :: SizeType > Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::RowIndicesType
protected
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
typedef LocalMatrixTraits< MatrixObjectType > Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::Traits

type of the traits

Constructor & Destructor Documentation

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::LocalMatrix ( const MatrixObjectType matrixObject,
const DomainSpaceType domainSpace,
const RangeSpaceType rangeSpace,
const DomainMapperType domainMapper,
const RangeMapperType rangeMapper 
)
inline

constructor taking entity and spaces for using mapToGlobal class RowSpaceType, class ColSpaceType>

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::LocalMatrix ( const LocalMatrix< MatrixObject > &  )
delete

Member Function Documentation

void Dune::Fem::LocalMatrixInterface< LocalMatrixTraits< MatrixObject > >::add ( const int  localRow,
const int  localCol,
const RangeFieldType value 
)
inlineinherited

add value to matrix entry (row,col) where row and col are local row and local column

Parameters
[in]localRowlocal row
[in]localCollocal column
[in]valuevalue to add

References Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::add(), and Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits >, LocalMatrixTraits::LocalMatrixType >::asImp().

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::add ( int  localRow,
int  localCol,
const DofType  value 
)
inline

add value to matrix entry

static const LocalMatrixTraits< MatrixObject >::LocalMatrixType & Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits< MatrixObject > > , LocalMatrixTraits< MatrixObject >::LocalMatrixType >::asImp ( const ThisType other)
inlinestaticprotectedinherited
static LocalMatrixTraits< MatrixObject >::LocalMatrixType & Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits< MatrixObject > > , LocalMatrixTraits< MatrixObject >::LocalMatrixType >::asImp ( ThisType other)
inlinestaticprotectedinherited
const LocalMatrixTraits< MatrixObject >::LocalMatrixType & Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits< MatrixObject > > , LocalMatrixTraits< MatrixObject >::LocalMatrixType >::asImp ( ) const
inlineprotectedinherited
LocalMatrixTraits< MatrixObject >::LocalMatrixType & Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits< MatrixObject > > , LocalMatrixTraits< MatrixObject >::LocalMatrixType >::asImp ( )
inlineprotectedinherited
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::clear ( )
inline

clear all entries belonging to local matrix

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::clearCol ( const int  localCol)
inline

set matrix column to zero

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::clearRow ( const int  localRow)
inline

set matrix row to zero

MatrixColumnType Dune::Fem::LocalMatrixInterface< LocalMatrixTraits< MatrixObject > >::column ( const unsigned int  col)
inlineinherited

return column object for local matrix which contains axpy methods for convenience

Parameters
collocal column number
Returns
object of type MatrixColumnObject

References Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits >, LocalMatrixTraits::LocalMatrixType >::asImp().

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
int Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::columns ( ) const
inline

return number of columns

const DomainBasisFunctionSetType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::domainBasisFunctionSet ( ) const
inlineinherited

access to the base function set within the domain space

const DomainEntityType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::domainEntity ( ) const
inlineinherited
const DomainSpaceType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::domainSpace ( ) const
inlineinherited

access to the domain space

void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::finalize ( )
inlineinherited

finalize local matrix setup and possibly add values to real matrix

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
DofType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::get ( int  localRow,
int  localCol 
) const
inline

get matrix entry

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::init ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity 
)
inline
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::multiplyAdd ( const DomainLocalFunctionType &  lhs,
RangeLocalFunctionType &  rhs 
) const
inlineinherited

multiply left hand side with local matrix and add to right hand side rhs += Matrix * lhs

Parameters
[in]lhsleft hand side
[out]rhsright hand side

References Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::columns(), and Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::rows().

const RangeBasisFunctionSetType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::rangeBasisFunctionSet ( ) const
inlineinherited

access to the base function set within the range space

const RangeEntityType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::rangeEntity ( ) const
inlineinherited
const RangeSpaceType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::rangeSpace ( ) const
inlineinherited

access to the range space

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::resort ( )
inline

resort all global rows of matrix to have ascending numbering

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
int Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::rows ( ) const
inline

return number of rows

void Dune::Fem::LocalMatrixInterface< LocalMatrixTraits< MatrixObject > >::scale ( const RangeFieldType scalar)
inlineinherited
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::scale ( const DofType value)
inline

scale local matrix with a certain value

void Dune::Fem::LocalMatrixInterface< LocalMatrixTraits< MatrixObject > >::set ( const int  localRow,
const int  localCol,
const RangeFieldType value 
)
inlineinherited

set value of matrix entry (row,col) where row and col are local row and local column

Parameters
[in]localRowlocal row
[in]localCollocal column
[in]valuevalue to set

References Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits >, LocalMatrixTraits::LocalMatrixType >::asImp().

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::set ( int  localRow,
int  localCol,
const DofType  value 
)
inline

set matrix entry to value

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
void Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::unitRow ( const int  localRow)
inline

set matrix row to zero except diagonla entry

Member Data Documentation

template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
ColumnIndicesType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::columnIndices_
protected

global index in the RangeSpace

DomainBasisFunctionSetType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::domainBaseSet_
protectedinherited
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
const DomainMapperType& Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::domainMapper_
protected
const DomainSpaceType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::domainSpace_
protectedinherited
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
MatrixType& Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::matrix_
protected
RangeBasisFunctionSetType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::rangeBaseSet_
protectedinherited
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
const RangeMapperType& Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::rangeMapper_
protected
const RangeSpaceType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits< MatrixObject > >::rangeSpace_
protectedinherited
template<class DomainSpace, class RangeSpace, class Matrix>
template<class MatrixObject >
RowIndicesType Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::LocalMatrix< MatrixObject >::rowIndices_
protected

global index in the DomainSpace


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