dune-fem  2.6-git
denserow.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_OPERATOR_LINEAR_DENSEROW_HH
2 #define DUNE_FEM_OPERATOR_LINEAR_DENSEROW_HH
3 
4 #include <string>
5 
6 #include <dune/common/dynmatrixev.hh>
7 
9 
10 namespace Dune
11 {
12 
13  namespace Fem
14  {
15 
16  // DenseRowLinearOperator
17  // ----------------------
18 
19  template< class DomainFunction, class RangeFunction >
21  : public DenseRowMatrixObject< typename DomainFunction::DiscreteFunctionSpaceType, typename RangeFunction::DiscreteFunctionSpaceType >,
22  public Fem::AssembledOperator< DomainFunction, RangeFunction >
23  {
26 
27  public:
28  typedef typename DomainFunction::DiscreteFunctionSpaceType DomainSpaceType;
29  typedef typename RangeFunction::DiscreteFunctionSpaceType RangeSpaceType;
30 
31  static constexpr bool assembled = true;
32 
33  using BaseType::apply;
34 
37  {}
38 
39  virtual void operator() ( const DomainFunction &arg, RangeFunction &dest ) const override { apply( arg, dest ); }
40 
41  const BaseType &systemMatrix () const { return *this; }
42  BaseType &systemMatrix () { return *this; }
43 
44  void communicate() {}
45  };
46 
47  } // namespace Fem
48 
49 } // namespace Dune
50 
51 #endif // #ifndef DUNE_FEM_OPERATOR_LINEAR_DENSEROW_HH
Definition: bindguard.hh:11
abstract matrix operator
Definition: operator.hh:110
Definition: denserow.hh:23
DenseRowLinearOperator(const std::string &, const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace)
Definition: denserow.hh:35
void apply(const DomainFunction &u, RangeFunction &w) const
Definition: densematrix.hh:294
BaseType & systemMatrix()
Definition: denserow.hh:42
virtual void operator()(const DomainFunction &arg, RangeFunction &dest) const override
application operator
Definition: denserow.hh:39
const BaseType & systemMatrix() const
Definition: denserow.hh:41
static constexpr bool assembled
Definition: denserow.hh:31
RangeFunction::DiscreteFunctionSpaceType RangeSpaceType
Definition: denserow.hh:29
DomainFunction::DiscreteFunctionSpaceType DomainSpaceType
Definition: denserow.hh:28
void communicate()
Definition: denserow.hh:44
Definition: densematrix.hh:217
const RangeFunction::DiscreteFunctionSpaceType & rangeSpace() const
Definition: densematrix.hh:331
void apply(const DomainFunction &u, RangeFunction &w) const
Definition: densematrix.hh:294
const DomainFunction::DiscreteFunctionSpaceType & domainSpace() const
Definition: densematrix.hh:330