dune-fem  2.8-git
columnobject.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_COLUMNOBJECT_HH
2 #define DUNE_FEM_COLUMNOBJECT_HH
3 
4 namespace Dune
5 {
6 
7  namespace Fem
8  {
9 
10  template< class LinearOperator >
11  struct ColumnObject
12  {
13  typedef typename LinearOperator::ColumnEntityType ColumnEntityType;
14  typedef typename LinearOperator::RowEntityType RowEntityType;
15 
16  typedef typename LinearOperator::DomainSpaceType DomainSpaceType;
17  typedef typename LinearOperator::RangeSpaceType RangeSpaceType;
18 
19  typedef typename LinearOperator::LocalMatrixType LocalMatrixType;
20 
21  ColumnObject( const LinearOperator &linOp, const ColumnEntityType &colEntity )
22  :
23  linOp_( linOp ),
24  colEntity_( colEntity )
25  {}
26 
28  inline LocalMatrixType localMatrix( const RowEntityType &rowEntity ) const
29  {
30  return linOp_.localMatrix( rowEntity, colEntity_ );
31  }
32 
34  const DomainSpaceType& domainSpace() const { return linOp_.domainSpace(); }
35 
37  const RangeSpaceType& rangeSpace() const { return linOp_.rangeSpace(); }
38 
39  private:
40  const LinearOperator &linOp_;
41  const ColumnEntityType &colEntity_;
42  };
43 
44  } // namespace Fem
45 } // namespace Dune
46 
47 #endif //#ifndef DUNE_FEM_COLUMNOBJECT_HH
Definition: bindguard.hh:11
abstract affine-linear operator
Definition: operator.hh:87
Definition: columnobject.hh:12
const RangeSpaceType & rangeSpace() const
return range space (i.e. space that builds the columns)
Definition: columnobject.hh:37
const DomainSpaceType & domainSpace() const
return domain space (i.e. space that builds the rows)
Definition: columnobject.hh:34
LinearOperator::LocalMatrixType LocalMatrixType
Definition: columnobject.hh:19
LinearOperator::RowEntityType RowEntityType
Definition: columnobject.hh:14
ColumnObject(const LinearOperator &linOp, const ColumnEntityType &colEntity)
Definition: columnobject.hh:21
LinearOperator::ColumnEntityType ColumnEntityType
Definition: columnobject.hh:13
LinearOperator::DomainSpaceType DomainSpaceType
Definition: columnobject.hh:16
LinearOperator::RangeSpaceType RangeSpaceType
Definition: columnobject.hh:17
LocalMatrixType localMatrix(const RowEntityType &rowEntity) const
return local matrix
Definition: columnobject.hh:28