dune-fem  2.8-git
spoperator.hh
Go to the documentation of this file.
1 #ifndef DUNE_FEM_SPOPERATOR_HH
2 #define DUNE_FEM_SPOPERATOR_HH
3 
4 // system includes
5 #include <string>
6 
7 // local includes
10 
11 namespace Dune
12 {
13 
14  namespace Fem
15  {
16 
18  template< class DomainFunction, class RangeFunction,
21  : public SparseRowMatrixObject< typename DomainFunction::DiscreteFunctionSpaceType,
22  typename RangeFunction::DiscreteFunctionSpaceType,
23  Matrix >,
24  public Fem::AssembledOperator< DomainFunction, RangeFunction >
25  {
26  typedef typename DomainFunction::DiscreteFunctionSpaceType DomainSpaceType;
27  typedef typename RangeFunction::DiscreteFunctionSpaceType RangeSpaceType;
30 
31  static constexpr bool assembled = true;
32 
33  using BaseType::apply;
35 
36  SparseRowLinearOperator( const std::string & ,
39  const SolverParameter& param = SolverParameter() ) :
41  {}
42 
43  virtual void operator()( const DomainFunction &arg, RangeFunction &dest ) const
44  {
45  apply( arg, dest );
46  }
47 
48  virtual void finalize () { BaseType::compress(); }
49 
50  };
51 
52  } // namespace Fem
53 
54 } // namespace Dune
55 
56 #endif // #ifndef DUNE_FEM_SPOPERATOR_HH
Definition: bindguard.hh:11
abstract matrix operator
Definition: operator.hh:124
SparseRowLinearOperator.
Definition: spoperator.hh:25
RangeFunction::DiscreteFunctionSpaceType RangeSpaceType
Definition: spoperator.hh:27
DomainFunction::DiscreteFunctionSpaceType DomainSpaceType
Definition: spoperator.hh:26
SparseRowLinearOperator(const std::string &, const DomainSpaceType &domainSpace, const RangeSpaceType &rangeSpace, const SolverParameter &param=SolverParameter())
Definition: spoperator.hh:36
virtual void finalize()
finalization of operator
Definition: spoperator.hh:48
void apply(const DomainFunction &arg, RangeFunction &dest) const
apply matrix to discrete function
Definition: spmatrix.hh:658
SparseRowLinearOperator< DomainFunction, RangeFunction, Matrix > ThisType
Definition: spoperator.hh:28
static constexpr bool assembled
Definition: spoperator.hh:31
virtual void operator()(const DomainFunction &arg, RangeFunction &dest) const
Definition: spoperator.hh:43
SparseRowMatrixObject< DomainSpaceType, RangeSpaceType, Matrix > BaseType
Definition: spoperator.hh:29
SparseRowMatrixObject.
Definition: spmatrix.hh:405
MatrixType & exportMatrix() const
get reference to storage object
Definition: spmatrix.hh:484
void apply(const DomainFunction &arg, RangeFunction &dest) const
apply matrix to discrete function
Definition: spmatrix.hh:658
void compress()
compress matrix to a real CRS format
Definition: spmatrix.hh:623
Definition: solver/parameter.hh:15