dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::LocalMatrixDefault< LocalMatrixTraits > Class Template Reference

Default implementation for local matrix classes. More...

#include <dune/fem/operator/common/localmatrix.hh>

Inheritance diagram for Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >:
Inheritance graph

Public Types

typedef LocalMatrixTraits Traits
 
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
 
typedef Traits::LocalMatrixType LocalMatrixType
 type of local matrix implementation
 
typedef Traits::RangeFieldType RangeFieldType
 type of range field
 
typedef Traits::LittleBlockType LittleBlockType
 
typedef MatrixColumnObject< TraitsMatrixColumnType
 

Public Member Functions

void init (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity)
 initialize the local matrix to entities
 
void bind (const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity)
 initialize the local matrix to entities
 
void unbind ()
 clear local matrix from entities
 
void resort ()
 resort ordering in global matrix (if possible)
 
void finalize ()
 finalize local matrix setup and possibly add values to real matrix
 
int rows () const
 get number of rows within the matrix
 
int columns () const
 get number of columns within the matrix
 
const DomainSpaceTypedomainSpace () const
 access to the domain space
 
const RangeSpaceTyperangeSpace () const
 access to the range space
 
const DomainBasisFunctionSetTypedomainBasisFunctionSet () const
 access to the base function set within the domain space
 
const RangeBasisFunctionSetTyperangeBasisFunctionSet () const
 access to the base function set within the range space
 
const DomainEntityTypedomainEntity () const
 
const RangeEntityTyperangeEntity () const
 
template<class DomainLocalFunctionType , class RangeLocalFunctionType >
void multiplyAdd (const DomainLocalFunctionType &lhs, RangeLocalFunctionType &rhs) const
 multiply left hand side with local matrix and add to right hand side rhs += Matrix * lhs
 
void clearRow (const int localRow)
 set row to zero values
 
void clearCol (const int localCol)
 ser column entries to zero
 
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
 
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
 
const RangeFieldType get (const int localRow, const int localCol) const
 get value of matrix entry (row,col) where row and col are local row and local column
 
void scale (const RangeFieldType &scalar)
 scale matrix with scalar value
 
void clear ()
 set all entries of local matrix to zero
 
MatrixColumnType column (const unsigned int col)
 return column object for local matrix which contains axpy methods for convenience
 

Protected Member Functions

 LocalMatrixDefault (const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace)
 
template<class DomainEntityType , class RangeEntityType >
 LocalMatrixDefault (const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace, const DomainEntityType &domainEntity, const RangeEntityType &rangeEntity)
 
 LocalMatrixDefault (const LocalMatrixDefault &org)
 
const Implementation & asImp () const
 
Implementation & asImp ()
 

Static Protected Member Functions

static const Implementation & asImp (const ThisType &other)
 
static Implementation & asImp (ThisType &other)
 
static const LocalMatrixTraits::LocalMatrixType & asImp (const ThisType &other)
 
static LocalMatrixTraits::LocalMatrixType & asImp (ThisType &other)
 

Protected Attributes

const DomainSpaceTypedomainSpace_
 
const RangeSpaceTyperangeSpace_
 
DomainBasisFunctionSetType domainBaseSet_
 
RangeBasisFunctionSetType rangeBaseSet_
 
std::optional< DomainEntityTypedomainEntity_
 
std::optional< RangeEntityTyperangeEntity_
 

Detailed Description

template<class LocalMatrixTraits>
class Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >

Default implementation for local matrix classes.

Member Typedef Documentation

◆ DomainBasisFunctionSetType

template<class LocalMatrixTraits >
typedef BaseType::DomainBasisFunctionSetType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::DomainBasisFunctionSetType

◆ DomainEntityType

template<class LocalMatrixTraits >
typedef BaseType::DomainEntityType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::DomainEntityType

◆ DomainSpaceType

template<class LocalMatrixTraits >
typedef BaseType::DomainSpaceType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::DomainSpaceType

◆ LittleBlockType

template<class LocalMatrixTraits >
typedef Traits::LittleBlockType Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::LittleBlockType
inherited

type of block (i.e. FieldMatrix for BlockMatrices

◆ LocalMatrixInterfaceType

template<class LocalMatrixTraits >
typedef ThisType Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::LocalMatrixInterfaceType
inherited

type of this interface

◆ LocalMatrixType

template<class LocalMatrixTraits >
typedef Traits::LocalMatrixType Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::LocalMatrixType
inherited

type of local matrix implementation

◆ MatrixColumnType

template<class LocalMatrixTraits >
typedef MatrixColumnObject< Traits > Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::MatrixColumnType
inherited

◆ RangeBasisFunctionSetType

template<class LocalMatrixTraits >
typedef BaseType::RangeBasisFunctionSetType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::RangeBasisFunctionSetType

◆ RangeEntityType

template<class LocalMatrixTraits >
typedef BaseType::RangeEntityType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::RangeEntityType

◆ RangeFieldType

template<class LocalMatrixTraits >
typedef Traits::RangeFieldType Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::RangeFieldType
inherited

type of range field

◆ RangeSpaceType

template<class LocalMatrixTraits >
typedef BaseType::RangeSpaceType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::RangeSpaceType

◆ Traits

template<class LocalMatrixTraits >
typedef LocalMatrixTraits Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::Traits

Constructor & Destructor Documentation

◆ LocalMatrixDefault() [1/3]

template<class LocalMatrixTraits >
Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::LocalMatrixDefault ( const DomainSpaceType domainSpace,
const RangeSpaceType rangeSpace 
)
inlineprotected

◆ LocalMatrixDefault() [2/3]

template<class LocalMatrixTraits >
template<class DomainEntityType , class RangeEntityType >
Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::LocalMatrixDefault ( const DomainSpaceType domainSpace,
const RangeSpaceType rangeSpace,
const DomainEntityType domainEntity,
const RangeEntityType rangeEntity 
)
inlineprotected

◆ LocalMatrixDefault() [3/3]

template<class LocalMatrixTraits >
Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::LocalMatrixDefault ( const LocalMatrixDefault< LocalMatrixTraits > &  org)
inlineprotected

Member Function Documentation

◆ add()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::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

◆ asImp() [1/6]

template<class LocalMatrixTraits >
Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( )
inlineprotectedinherited

◆ asImp() [2/6]

template<class LocalMatrixTraits >
const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ) const
inlineprotectedinherited

◆ asImp() [3/6]

static const LocalMatrixTraits::LocalMatrixType & Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits > , LocalMatrixTraits::LocalMatrixType >::asImp ( const ThisType other)
inlinestaticprotectedinherited

◆ asImp() [4/6]

template<class LocalMatrixTraits >
static const Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( const ThisType other)
inlinestaticprotectedinherited

◆ asImp() [5/6]

static LocalMatrixTraits::LocalMatrixType & Dune::Fem::BartonNackmanInterface< LocalMatrixInterface< LocalMatrixTraits > , LocalMatrixTraits::LocalMatrixType >::asImp ( ThisType other)
inlinestaticprotectedinherited

◆ asImp() [6/6]

template<class LocalMatrixTraits >
static Implementation & Dune::Fem::BartonNackmanInterface< Interface, Implementation >::asImp ( ThisType other)
inlinestaticprotectedinherited

◆ bind()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::bind ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity 
)
inline

initialize the local matrix to entities

Parameters
[in]domainEntityentity within grid of domain space,
[in]rangeEntityentity within grid of range space

◆ clear()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::clear ( )
inlineinherited

set all entries of local matrix to zero

◆ clearCol()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::clearCol ( const int  localCol)
inline

ser column entries to zero

Parameters
[in]localCollocal column that is set to zero

◆ clearRow()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::clearRow ( const int  localRow)
inline

set row to zero values

Parameters
[in]localRowlocal row that is set to zero

◆ column()

template<class LocalMatrixTraits >
MatrixColumnType Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::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

◆ columns()

template<class LocalMatrixTraits >
int Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::columns ( ) const
inline

get number of columns within the matrix

◆ domainBasisFunctionSet()

template<class LocalMatrixTraits >
const DomainBasisFunctionSetType & Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::domainBasisFunctionSet ( ) const
inline

access to the base function set within the domain space

◆ domainEntity()

template<class LocalMatrixTraits >
const DomainEntityType & Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::domainEntity ( ) const
inline

◆ domainSpace()

template<class LocalMatrixTraits >
const DomainSpaceType & Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::domainSpace ( ) const
inline

access to the domain space

◆ finalize()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::finalize ( )
inline

finalize local matrix setup and possibly add values to real matrix

◆ get()

template<class LocalMatrixTraits >
const RangeFieldType Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::get ( const int  localRow,
const int  localCol 
) const
inlineinherited

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

Parameters
[in]localRowlocal row
[in]localCollocal column
Returns
value of matrix entry

◆ init()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::init ( const DomainEntityType domainEntity,
const RangeEntityType rangeEntity 
)
inline

initialize the local matrix to entities

Parameters
[in]domainEntityentity within grid of domain space,
[in]rangeEntityentity within grid of range space

◆ multiplyAdd()

template<class LocalMatrixTraits >
template<class DomainLocalFunctionType , class RangeLocalFunctionType >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::multiplyAdd ( const DomainLocalFunctionType &  lhs,
RangeLocalFunctionType &  rhs 
) const
inline

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

◆ rangeBasisFunctionSet()

template<class LocalMatrixTraits >
const RangeBasisFunctionSetType & Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::rangeBasisFunctionSet ( ) const
inline

access to the base function set within the range space

◆ rangeEntity()

template<class LocalMatrixTraits >
const RangeEntityType & Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::rangeEntity ( ) const
inline

◆ rangeSpace()

template<class LocalMatrixTraits >
const RangeSpaceType & Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::rangeSpace ( ) const
inline

access to the range space

◆ resort()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::resort ( )
inline

resort ordering in global matrix (if possible)

◆ rows()

template<class LocalMatrixTraits >
int Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::rows ( ) const
inline

get number of rows within the matrix

◆ scale()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::scale ( const RangeFieldType scalar)
inlineinherited

scale matrix with scalar value

Parameters
[in]scalarscalar value that scales the matrix

◆ set()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixInterface< LocalMatrixTraits >::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

◆ unbind()

template<class LocalMatrixTraits >
void Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::unbind ( )
inline

clear local matrix from entities

Member Data Documentation

◆ domainBaseSet_

template<class LocalMatrixTraits >
DomainBasisFunctionSetType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::domainBaseSet_
protected

◆ domainEntity_

template<class LocalMatrixTraits >
std::optional< DomainEntityType > Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::domainEntity_
protected

◆ domainSpace_

template<class LocalMatrixTraits >
const DomainSpaceType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::domainSpace_
protected

◆ rangeBaseSet_

template<class LocalMatrixTraits >
RangeBasisFunctionSetType Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::rangeBaseSet_
protected

◆ rangeEntity_

template<class LocalMatrixTraits >
std::optional< RangeEntityType > Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::rangeEntity_
protected

◆ rangeSpace_

template<class LocalMatrixTraits >
const RangeSpaceType& Dune::Fem::LocalMatrixDefault< LocalMatrixTraits >::rangeSpace_
protected

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