dune-fem 2.8.0
Loading...
Searching...
No Matches
eigenoperator.hh
Go to the documentation of this file.
1#ifndef DUNE_FEM_EIGENOPERATOR_HH
2#define DUNE_FEM_EIGENOPERATOR_HH
3
4#ifdef HAVE_EIGEN
5
6// system includes
7#include <string>
8
9// local includes
11
12namespace Dune
13{
14
15 namespace Fem
16 {
17
19 template< class DomainFunction, class RangeFunction >
20 struct EigenLinearOperator
21 : public EigenMatrixObject< typename DomainFunction::DiscreteFunctionSpaceType, typename RangeFunction::DiscreteFunctionSpaceType >,
22 public Fem::AssembledOperator< DomainFunction, RangeFunction >
23 {
24 typedef typename DomainFunction::DiscreteFunctionSpaceType DomainSpaceType;
25 typedef typename RangeFunction::DiscreteFunctionSpaceType RangeSpaceType;
26 typedef EigenLinearOperator< DomainFunction, RangeFunction > ThisType;
27 typedef EigenMatrixObject< DomainSpaceType, RangeSpaceType > BaseType;
28
29 static constexpr bool assembled = true ;
30
31 using BaseType::apply;
32 using BaseType::exportMatrix;
33
34 EigenLinearOperator( const std::string & ,
35 const DomainSpaceType &domainSpace,
36 const RangeSpaceType &rangeSpace,
37 const SolverParameter& param = SolverParameter() ) :
38 BaseType( domainSpace, rangeSpace, param )
39 {}
40
41 virtual void operator()( const DomainFunction &arg, RangeFunction &dest ) const
42 {
43 apply( arg, dest );
44 }
45
46 };
47 } // namespace Fem
48
49} // namespace Dune
50
51#endif
52
53#endif // #ifndef DUNE_FEM_SPLINEAR_HH
Definition: bindguard.hh:11