1#ifndef DUNE_FEM_SOLVER_INVERSEOPERATORINTERFACE_HH
2#define DUNE_FEM_SOLVER_INVERSEOPERATORINTERFACE_HH
13 template <
class Traits>
15 public Dune::Fem::Operator< typename Traits::DiscreteFunctionType, typename Traits::DiscreteFunctionType >,
19 typedef typename Traits::OperatorType
BaseType;
69 template <
class DImpl,
class RImpl>
122 std::shared_ptr< SolverParameterType > sharedNewParams = std::make_shared< SolverParameterType > (newParams);
163 template <
class DImpl,
class RImpl>
168 DUNE_THROW(Dune::NotImplemented,
"InverseOperator::operator() for matrix free operators only makes sense" <<
169 " for fixed types of domain and range functions to avoid excessive copying!");
202 mutable std::unique_ptr< SolverDiscreteFunctionType >
rhs_;
203 mutable std::unique_ptr< SolverDiscreteFunctionType >
x_;
Definition: bindguard.hh:11
Definition: common/discretefunction.hh:86
const DiscreteFunctionSpaceType & space() const
obtain a reference to the corresponding DiscreteFunctionSpace
Definition: common/discretefunction.hh:214
void assign(const DiscreteFunctionInterface< DFType > &g)
assign the DoFs of another discrete function to this one
Definition: common/discretefunction.hh:455
Container for User Specified Parameters.
Definition: io/parameter.hh:191
static bool verbose()
obtain the cached value for fem.verbose
Definition: io/parameter.hh:445
Definition: bartonnackmaninterface.hh:17
const Traits::InverseOperatorType & asImp() const
Definition: bartonnackmaninterface.hh:37
abstract operator
Definition: operator.hh:34
Definition: inverseoperatorinterface.hh:17
virtual void setMaxIterations(const int iter)
Definition: inverseoperatorinterface.hh:113
int iterations_
Definition: inverseoperatorinterface.hh:205
virtual void operator()(const DomainFunctionType &u, RangeFunctionType &w) const
application of operator to compute
Definition: inverseoperatorinterface.hh:53
InverseOperatorInterface(const InverseOperatorInterface &other)
copy constructor setting defaults
Definition: inverseoperatorinterface.hh:144
InverseOperatorInterface(const SolverParameterType ¶meter)
default constructor
Definition: inverseoperatorinterface.hh:38
double averageCommTime() const
return accumulated communication time
Definition: inverseoperatorinterface.hh:138
const PreconditionerType * preconditioner_
Definition: inverseoperatorinterface.hh:199
Traits::SolverParameterType SolverParameterType
Definition: inverseoperatorinterface.hh:33
SolverParameterType & parameter() const
Definition: inverseoperatorinterface.hh:127
std::unique_ptr< SolverDiscreteFunctionType > x_
Definition: inverseoperatorinterface.hh:203
const OperatorType * operator_
Definition: inverseoperatorinterface.hh:197
std::unique_ptr< SolverDiscreteFunctionType > rhs_
Definition: inverseoperatorinterface.hh:202
virtual void setMaxLinearIterations(const int iter)
set number of max linear iterations to be used before an exception is thrown
Definition: inverseoperatorinterface.hh:108
void unbind()
reset all pointers and internal temporary memory
Definition: inverseoperatorinterface.hh:100
void opApply(const DiscreteFunctionInterface< DImpl > &u, DiscreteFunctionInterface< RImpl > &w) const
Definition: inverseoperatorinterface.hh:164
bool verbose() const
Definition: inverseoperatorinterface.hh:132
void bind(const OperatorType &op, const PreconditionerType &preconditioner)
store pointer to linear operator and preconditioner
Definition: inverseoperatorinterface.hh:93
Traits::AssembledOperatorType AssembledOperatorType
Definition: inverseoperatorinterface.hh:31
Traits::SolverDiscreteFunctionType SolverDiscreteFunctionType
Definition: inverseoperatorinterface.hh:29
bool rightHandSideCopied_
Definition: inverseoperatorinterface.hh:206
BartonNackmanInterface< InverseOperatorInterface< Traits >, typename Traits::InverseOperatorType > Base2Type
Definition: inverseoperatorinterface.hh:20
bool verbose_
Definition: inverseoperatorinterface.hh:207
std::shared_ptr< SolverParameterType > parameter_
Definition: inverseoperatorinterface.hh:195
Traits::InverseOperatorType InverseOperatorType
Definition: inverseoperatorinterface.hh:24
Traits::PreconditionerType PreconditionerType
Definition: inverseoperatorinterface.hh:32
BaseType::DomainFunctionType DomainFunctionType
Definition: inverseoperatorinterface.hh:26
const AssembledOperatorType * assembledOperator_
Definition: inverseoperatorinterface.hh:198
Traits::OperatorType BaseType
Definition: inverseoperatorinterface.hh:19
void opApply(const SolverDiscreteFunctionType &u, SolverDiscreteFunctionType &w) const
Definition: inverseoperatorinterface.hh:157
void bind(const OperatorType &op)
store pointer to linear operator
Definition: inverseoperatorinterface.hh:81
Traits::OperatorType OperatorType
Definition: inverseoperatorinterface.hh:30
int iterations() const
return number of iterations used in previous call of application operator
Definition: inverseoperatorinterface.hh:103
BaseType::RangeFunctionType RangeFunctionType
Definition: inverseoperatorinterface.hh:27
void setParameters(const SolverParameterType &newParams)
set complete set of linear inverse operator parameters
Definition: inverseoperatorinterface.hh:120