dune-fem  2.4.1-rc
Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction > Class Template Reference

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/operator/linear/spoperator.hh>

Inheritance diagram for Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >:
Inheritance graph

Public Types

typedef Base::DomainSpaceType DomainSpaceType
 
typedef Base::RangeSpaceType RangeSpaceType
 
typedef DomainSpaceType::EntityType DomainEntityType
 
typedef RangeSpaceType::EntityType RangeEntityType
 
typedef DomainSpaceType::EntityType ColumnEntityType
 
typedef RangeSpaceType::EntityType RowEntityType
 
typedef DomainSpaceType::BlockMapperType DomainBlockMapperType
 
typedef NonBlockMapper< DomainBlockMapperType, DomainSpaceType::localBlockSize > DomainMapperType
 
typedef RangeSpaceType::BlockMapperType RangeBlockMapperType
 
typedef NonBlockMapper< RangeBlockMapperType, RangeSpaceType::localBlockSize > RangeMapperType
 
typedef Matrix MatrixType
 
typedef MatrixType PreconditionMatrixType
 
typedef LocalMatrix< ThisTypeObjectType
 type of local matrix More...
 
typedef ThisType LocalMatrixFactoryType
 
typedef Fem::ObjectStack< LocalMatrixFactoryTypeLocalMatrixStackType
 
typedef LocalMatrixWrapper< LocalMatrixStackTypeLocalMatrixType
 type of local matrix More...
 
typedef ColumnObject< ThisTypeLocalColumnObjectType
 
typedef DomainFunction DomainFunctionType
 type of discrete function in the operator's domain More...
 
typedef RangeFunction RangeFunctionType
 type of discrete function in the operator's range More...
 
typedef DomainFunction::RangeFieldType DomainFieldType
 field type of the operator's domain More...
 
typedef RangeFunction::RangeFieldType RangeFieldType
 field type of the operator's range More...
 

Public Member Functions

 SparseRowLinearOperator (const std::string &, const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace, const std::string &paramfile)
 
 SparseRowLinearOperator (const std::string &, const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace, const MatrixParameter &param=SparseRowMatrixParameter())
 
virtual void operator() (const DomainFunction &arg, RangeFunction &dest) const
 application operator More...
 
const BasesystemMatrix () const
 
void communicate () const
 
const DomainSpaceTypedomainSpace () const
 return domain space (i.e. space that builds the rows) More...
 
const RangeSpaceTyperangeSpace () const
 return range space (i.e. space that builds the columns) More...
 
MatrixTypematrix () const
 return reference to stability matrix More...
 
ObjectTypenewObject () const
 interface method from LocalMatrixFactory More...
 
LocalMatrixType localMatrix (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity) const
 return local matrix More...
 
LocalColumnObjectType localColumn (const DomainEntityType &domainEntity) const
 
void addLocalMatrix (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity, const LocalMatrix &localMat)
 
void addScaledLocalMatrix (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity, const LocalMatrix &localMat, const Scalar &s)
 
void setLocalMatrix (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity, const LocalMatrix &localMat)
 
void getLocalMatrix (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity, LocalMatrix &localMat) const
 
void clear ()
 resize all matrices and clear them More...
 
bool hasPreconditionMatrix () const
 return true if precoditioning matrix is provided More...
 
const PreconditionMatrixTypepreconditionMatrix () const
 return reference to preconditioner More...
 
void reserve (const Stencil &stencil, bool verbose=false)
 reserve memory for assemble based on the provided stencil More...
 
void solveUMF (const DomainFunction &arg, RangeFunction &dest) const
 
void solveUMFNonSymmetric (const DomainFunction &arg, RangeFunction &dest) const
 
void apply (const DomainFunction &arg, RangeFunction &dest) const
 apply matrix to discrete function More...
 
void apply (const AdaptiveDiscreteFunction< DomainSpaceType > &arg, AdaptiveDiscreteFunction< RangeSpaceType > &dest) const
 apply matrix to discrete function More...
 
void apply_t (const RangeFunction &arg, DomainFunction &dest) const
 apply transposed matrix to discrete function More...
 
void apply_t (const AdaptiveDiscreteFunction< RangeSpaceType > &arg, AdaptiveDiscreteFunction< DomainSpaceType > &dest) const
 apply transposed matrix to discrete function More...
 
double ddotOEM (const double *v, const double *w) const
 mult method of matrix object used by oem solver More...
 
void multOEM (const double *arg, double *dest) const
 mult method of matrix object used by oem solver More...
 
void resort ()
 resort row numbering in matrix to have ascending numbering More...
 
void createPreconditionMatrix ()
 
void extractDiagonal (DiscreteFunctionType &diag) const
 extract diagonal entries from matrix into discrete function More...
 
void changeHangingNodes (const HangingNodesType &hangingNodes)
 delete all row belonging to a hanging node and rebuild them More...
 
virtual bool symmetric () const
 
virtual bool positiveDefinite () const
 

Static Public Attributes

static const bool assembled = true
 

Protected Types

typedef DomainSpaceType::GridType GridType
 

Protected Member Functions

void insertHangingRow (const HangingNodesType &hangingNodes, const int row, const ColumnVectorType &colVec)
 insert row to be a row for a hanging node More...
 

Protected Attributes

const DomainSpaceTypedomainSpace_
 
const RangeSpaceTyperangeSpace_
 
DomainMapperType domainMapper_
 
RangeMapperType rangeMapper_
 
int sequence_
 
MatrixType matrix_
 
bool preconditioning_
 
LocalMatrixStackType localMatrixStack_
 

Member Typedef Documentation

typedef DomainSpaceType :: EntityType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::ColumnEntityType
inherited
typedef DomainSpaceType :: BlockMapperType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::DomainBlockMapperType
inherited
typedef DomainSpaceType :: EntityType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::DomainEntityType
inherited
template<class DomainFunction, class RangeFunction = DomainFunction>
typedef DomainFunction::RangeFieldType Dune::Fem::Operator< DomainFunction, RangeFunction >::DomainFieldType
inherited

field type of the operator's domain

template<class DomainFunction, class RangeFunction = DomainFunction>
typedef DomainFunction Dune::Fem::Operator< DomainFunction, RangeFunction >::DomainFunctionType
inherited

type of discrete function in the operator's domain

typedef NonBlockMapper< DomainBlockMapperType, DomainSpaceType :: localBlockSize > Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::DomainMapperType
inherited
template<class DomainFunction , class RangeFunction >
typedef Base::DomainSpaceType Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::DomainSpaceType
typedef DomainSpaceType :: GridType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::GridType
protectedinherited
typedef ColumnObject< ThisType > Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::LocalColumnObjectType
inherited
typedef ThisType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::LocalMatrixFactoryType
inherited
typedef Fem :: ObjectStack< LocalMatrixFactoryType > Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::LocalMatrixStackType
inherited
typedef LocalMatrixWrapper< LocalMatrixStackType > Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::LocalMatrixType
inherited

type of local matrix

typedef Matrix Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::MatrixType
inherited
typedef LocalMatrix<ThisType> Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::ObjectType
inherited

type of local matrix

typedef MatrixType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::PreconditionMatrixType
inherited
typedef RangeSpaceType :: BlockMapperType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::RangeBlockMapperType
inherited
typedef RangeSpaceType :: EntityType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::RangeEntityType
inherited
template<class DomainFunction, class RangeFunction = DomainFunction>
typedef RangeFunction::RangeFieldType Dune::Fem::Operator< DomainFunction, RangeFunction >::RangeFieldType
inherited

field type of the operator's range

template<class DomainFunction, class RangeFunction = DomainFunction>
typedef RangeFunction Dune::Fem::Operator< DomainFunction, RangeFunction >::RangeFunctionType
inherited

type of discrete function in the operator's range

typedef NonBlockMapper< RangeBlockMapperType, RangeSpaceType :: localBlockSize > Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::RangeMapperType
inherited
template<class DomainFunction , class RangeFunction >
typedef Base::RangeSpaceType Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::RangeSpaceType
typedef RangeSpaceType :: EntityType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::RowEntityType
inherited

Constructor & Destructor Documentation

template<class DomainFunction , class RangeFunction >
Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::SparseRowLinearOperator ( const std::string &  ,
const DomainSpaceType domainSpace,
const RangeSpaceType rangeSpace,
const std::string &  paramfile 
)
inline
Deprecated:
"SparseRowLinearOperator(...,string) is deprecated. Use SparseRowLinearOperator(string,DomainSpace,RangeSpace,MatrixParameter) instead"
template<class DomainFunction , class RangeFunction >
Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::SparseRowLinearOperator ( const std::string &  ,
const DomainSpaceType domainSpace,
const RangeSpaceType rangeSpace,
const MatrixParameter param = SparseRowMatrixParameter() 
)
inline

Member Function Documentation

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::addLocalMatrix ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity,
const LocalMatrix &  localMat 
)
inlineinherited
void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::addScaledLocalMatrix ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity,
const LocalMatrix &  localMat,
const Scalar &  s 
)
inlineinherited
void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::apply ( const DomainFunction &  arg,
RangeFunction &  dest 
) const
inlineinherited

apply matrix to discrete function

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::apply ( const AdaptiveDiscreteFunction< DomainSpaceType > &  arg,
AdaptiveDiscreteFunction< RangeSpaceType > &  dest 
) const
inlineinherited
void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::apply_t ( const RangeFunction &  arg,
DomainFunction &  dest 
) const
inlineinherited

apply transposed matrix to discrete function

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::apply_t ( const AdaptiveDiscreteFunction< RangeSpaceType > &  arg,
AdaptiveDiscreteFunction< DomainSpaceType > &  dest 
) const
inlineinherited
void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::changeHangingNodes ( const HangingNodesType &  hangingNodes)
inlineinherited

delete all row belonging to a hanging node and rebuild them

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::clear ( )
inlineinherited

resize all matrices and clear them

template<class DomainFunction , class RangeFunction >
void Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::communicate ( ) const
inline
void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::createPreconditionMatrix ( )
inlineinherited
double Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::ddotOEM ( const double *  v,
const double *  w 
) const
inlinevirtualinherited

mult method of matrix object used by oem solver

Implements Dune::Fem::OEMMatrix.

const DomainSpaceType& Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::domainSpace ( ) const
inlineinherited

return domain space (i.e. space that builds the rows)

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::extractDiagonal ( DiscreteFunctionType &  diag) const
inlineinherited

extract diagonal entries from matrix into discrete function

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::getLocalMatrix ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity,
LocalMatrix &  localMat 
) const
inlineinherited
bool Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::hasPreconditionMatrix ( ) const
inlineinherited

return true if precoditioning matrix is provided

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::insertHangingRow ( const HangingNodesType &  hangingNodes,
const int  row,
const ColumnVectorType &  colVec 
)
inlineprotectedinherited

insert row to be a row for a hanging node

LocalColumnObjectType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::localColumn ( const DomainEntityType domainEntity) const
inlineinherited
LocalMatrixType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::localMatrix ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity 
) const
inlineinherited

return local matrix

MatrixType& Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::matrix ( ) const
inlineinherited

return reference to stability matrix

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::multOEM ( const double *  arg,
double *  dest 
) const
inlinevirtualinherited

mult method of matrix object used by oem solver

Implements Dune::Fem::OEMMatrix.

ObjectType* Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::newObject ( ) const
inlineinherited

interface method from LocalMatrixFactory

template<class DomainFunction , class RangeFunction >
virtual void Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::operator() ( const DomainFunction &  u,
RangeFunction &  w 
) const
inlinevirtual

application operator

Parameters
[in]uargument discrete function
[out]wdestination discrete function
Note
This method has to be implemented by all derived classes.

Implements Dune::Fem::Operator< DomainFunction, RangeFunction >.

References Dune::Fem::SparseRowMatrixObject< DomainSpace, RangeSpace, Matrix >::apply().

template<class DomainFunction, class RangeFunction = DomainFunction>
virtual bool Dune::Fem::LinearOperator< DomainFunction, RangeFunction >::positiveDefinite ( ) const
inlinevirtualinherited

Return true if the Operator is positive definite.

const PreconditionMatrixType& Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::preconditionMatrix ( ) const
inlineinherited

return reference to preconditioner

const RangeSpaceType& Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::rangeSpace ( ) const
inlineinherited

return range space (i.e. space that builds the columns)

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::reserve ( const Stencil stencil,
bool  verbose = false 
)
inlineinherited

reserve memory for assemble based on the provided stencil

References Dune::Std::max(), and Dune::Fem::Stencil< DomainSpace, RangeSpace >::maxNonZerosEstimate().

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::resort ( )
inlineinherited

resort row numbering in matrix to have ascending numbering

void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::setLocalMatrix ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity,
const LocalMatrix &  localMat 
)
inlineinherited
void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::solveUMF ( const DomainFunction &  arg,
RangeFunction &  dest 
) const
inlineinherited
Deprecated:
"Use directly Dune::Fem::UMFPACKOp instead of solveUMF"
void Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::solveUMFNonSymmetric ( const DomainFunction &  arg,
RangeFunction &  dest 
) const
inlineinherited
Deprecated:
"Use directly Dune::Fem::UMFPACKOp instead of solveUMFNonSymmetric"
template<class DomainFunction, class RangeFunction = DomainFunction>
virtual bool Dune::Fem::LinearOperator< DomainFunction, RangeFunction >::symmetric ( ) const
inlinevirtualinherited

Return true if the Operator is symmetric.

template<class DomainFunction , class RangeFunction >
const Base& Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::systemMatrix ( ) const
inline

Member Data Documentation

template<class DomainFunction , class RangeFunction >
const bool Dune::Fem::SparseRowLinearOperator< DomainFunction, RangeFunction >::assembled = true
static

DomainMapperType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::domainMapper_
protectedinherited
const DomainSpaceType& Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::domainSpace_
protectedinherited
LocalMatrixStackType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::localMatrixStack_
mutableprotectedinherited
MatrixType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::matrix_
mutableprotectedinherited
bool Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::preconditioning_
protectedinherited
RangeMapperType Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::rangeMapper_
protectedinherited
const RangeSpaceType& Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::rangeSpace_
protectedinherited
int Dune::Fem::SparseRowMatrixObject< DomainFunction::DiscreteFunctionSpaceType , RangeFunction::DiscreteFunctionSpaceType , Matrix >::sequence_
protectedinherited

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