|
dune-fem 2.12-git
|
Loading...
Searching...
No Matches
cginverseoperator.hh
Go to the documentation of this file.
472 template< class LinearOperator, std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0 >
489 template< class LinearOperator, std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0 >
499 template< class LinearOperator, std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0 >
548 template< class LinearOperator, std::enable_if_t< std::is_base_of< OperatorType, LinearOperator >::value, int > = 0 >
569 preconditioning = parameter_.parameter().template getValue< bool >( "fem.preconditioning", false );
579 if( preconditioning && std::is_base_of< AssembledOperator< DomainFunctionType, DomainFunctionType > ,LinearOperator > :: value )
582 precondObj_.reset( new DiagonalPreconditioner< DomainFunctionType, LinearOperator >( linearOp ) );
655 ::solve ( const OperatorType &op, const PreconditionerType &precond, const RangeFunctionType &b, DomainFunctionType &x ) const
681 RangeFieldType prevResiduum = 0; // note that these will be real_type but require scalar product evaluation
684 for( realCount_ = 0; (std::real(residuum) > tolerance) && (realCount_ < maxIterations_); ++realCount_ )
double alpha() const
double beta() const
STL namespace.
T real_type
static ParameterContainer & container()
Definition io/parameter.hh:199
bool exists(const std::string &key) const
check, whether a parameter is defined
Definition reader.hh:46
virtual void finalize()
finalization of operator
Definition operator.hh:61
DomainFunction DomainFunctionType
type of discrete function in the operator's domain
Definition operator.hh:36
RangeFunction::RangeFieldType RangeFieldType
field type of the operator's range
Definition operator.hh:43
DomainFunction::RangeFieldType DomainFieldType
field type of the operator's domain
Definition operator.hh:41
RangeFunction RangeFunctionType
type of discrete function in the operator's range
Definition operator.hh:38
linear solver using the CG algorithm
Definition cginverseoperator.hh:31
ConjugateGradientSolver(const RealType &epsilon, unsigned int maxIterations, bool verbose, const ParameterReader ¶meter=Parameter::container())
Definition cginverseoperator.hh:76
OperatorType::RangeFunctionType RangeFunctionType
type of the operator's range vectors
Definition cginverseoperator.hh:47
ConjugateGradientSolver(RealType epsilon, unsigned int maxIterations, const ParameterReader ¶meter=Parameter::container())
constructor
Definition cginverseoperator.hh:93
unsigned int iterations() const
number of iterations needed for last solve
Definition cginverseoperator.hh:135
void solve(const OperatorType &op, const RangeFunctionType &b, DomainFunctionType &x) const
solve
Definition cginverseoperator.hh:597
Dune::FieldTraits< RangeFieldType >::real_type RealType
Definition cginverseoperator.hh:42
double averageCommTime() const
return average communication time during last solve
Definition cginverseoperator.hh:144
void setMaxIterations(unsigned int maxIterations)
Definition cginverseoperator.hh:140
void solve(const OperatorType &op, const PreconditionerType &p, const RangeFunctionType &b, DomainFunctionType &x) const
solve
Definition cginverseoperator.hh:655
Fem::Operator< RangeFunctionType, DomainFunctionType > PreconditionerType
type of the preconditioner, maps from the range of the operator (the dual space) in it's domain
Definition cginverseoperator.hh:50
OperatorType::RangeFieldType RangeFieldType
field type of the operator's range vectors
Definition cginverseoperator.hh:41
OperatorType::DomainFieldType DomainFieldType
field type of the operator's domain vectors
Definition cginverseoperator.hh:39
double averageCommTime_
Definition cginverseoperator.hh:154
OperatorType::DomainFunctionType DomainFunctionType
type of the operator's domain vectors
Definition cginverseoperator.hh:45
const RealType epsilon_
Definition cginverseoperator.hh:150
Operator OperatorType
type of the operators to invert
Definition cginverseoperator.hh:36
ConjugateGradientSolver(const RealType &epsilon, unsigned int maxIterations, int errorMeasure, bool verbose)
constructor
Definition cginverseoperator.hh:65
unsigned int realCount_
Definition cginverseoperator.hh:155
int errorMeasure_
Definition cginverseoperator.hh:152
unsigned int maxIterations_
Definition cginverseoperator.hh:151
Inverse operator base on CG method. This is the base class for the cg solver and does not imvolve any...
Definition cginverseoperator.hh:172
CGInverseOperator(const OperatorType &op, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:260
const PreconditionerType * preconditioner_
Definition cginverseoperator.hh:388
void prepare(A...) const
Definition cginverseoperator.hh:347
CGInverseOperator(RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:200
virtual void operator()(const DomainFunctionType &arg, RangeFunctionType &dest) const
application operator
Definition cginverseoperator.hh:339
const OperatorType * operator_
Definition cginverseoperator.hh:387
CGInverseOperator(const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:304
Dune::FieldTraits< RangeFieldType >::real_type RealType
Definition cginverseoperator.hh:184
CGInverseOperator(const OperatorType &op, RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container())
Definition cginverseoperator.hh:269
CGInverseOperator(RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:223
Fem::Operator< DomainFunctionType, RangeFunctionType > OperatorType
Definition cginverseoperator.hh:180
unsigned int iterations() const
number of iterations needed for last solve
Definition cginverseoperator.hh:368
SolverParameter parameter_
Definition cginverseoperator.hh:390
virtual void apply(const DomainFunctionType &arg, RangeFunctionType &dest) const
application operator
Definition cginverseoperator.hh:358
void bind(const OperatorType &op, const PreconditionerType &precond)
Definition cginverseoperator.hh:324
CGInverseOperator(const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container())
Definition cginverseoperator.hh:313
CGInverseOperator(RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container())
Definition cginverseoperator.hh:230
OperatorType::RangeFieldType RangeFieldType
Definition cginverseoperator.hh:183
BaseType::DomainFunctionType DomainFunctionType
Definition cginverseoperator.hh:177
CGInverseOperator(const OperatorType &op, const PreconditionerType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:286
double averageCommTime() const
return average communication time during last solve
Definition cginverseoperator.hh:376
SolverParameter & parameter() const
Definition cginverseoperator.hh:381
Fem::Operator< RangeFunctionType, DomainFunctionType > PreconditionerType
Definition cginverseoperator.hh:181
BaseType::RangeFunctionType RangeFunctionType
Definition cginverseoperator.hh:178
CGInverseOperator(const SolverParameter ¶m=SolverParameter(Parameter::container()))
Definition cginverseoperator.hh:207
void setMaxIterations(unsigned int maxIter)
Definition cginverseoperator.hh:373
void bind(const OperatorType &op)
Definition cginverseoperator.hh:323
CGInverseOperator(const OperatorType &op, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:243
Inverse operator base on CG method. Uses a runtime parameter fem.preconditioning which enables diagon...
Definition cginverseoperator.hh:408
CGInverseOperator(RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:441
const PreconditionerType * preconditioner_
Definition cginverseoperator.hh:388
CGInverseOperator(const OperatorType &op, const PreconditioningType &precond, RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container())
Definition cginverseoperator.hh:540
Op OperatorType
type of operator
Definition cginverseoperator.hh:421
CGInverseOperator(RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container())
Definition cginverseoperator.hh:459
CGInverseOperator(const LinearOperator &op, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:490
SolverParameter SolverParameterType
Definition cginverseoperator.hh:414
void bind(const LinearOperator &op)
Definition cginverseoperator.hh:549
CGInverseOperator(RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:453
CGInverseOperator(const LinearOperator &op, RealType redEps, RealType absLimit, const ParameterReader ¶meter=Parameter::container())
Definition cginverseoperator.hh:500
SolverParameter parameter_
Definition cginverseoperator.hh:390
Dune::FieldTraits< RangeFieldType >::real_type RealType
Definition cginverseoperator.hh:424
OperatorType::RangeFieldType RangeFieldType
Definition cginverseoperator.hh:423
CGInverseOperator(const OperatorType &op, const PreconditioningType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:516
Fem::Operator< RangeFunctionType, DomainFunctionType > PreconditioningType
Definition cginverseoperator.hh:427
CGInverseOperator(const LinearOperator &op, RealType redEps, RealType absLimit, unsigned int maxIter, bool verbose, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:473
CGInverseOperator(const SolverParameter ¶m=SolverParameter(Parameter::container()))
Definition cginverseoperator.hh:429
BaseType::RangeFunctionType RangeFunctionType
Definition cginverseoperator.hh:416
CGInverseOperator(const OperatorType &op, const PreconditioningType &precond, RealType redEps, RealType absLimit, unsigned int maxIter, const ParameterReader ¶meter=Parameter::container())
constructor of CGInverseOperator
Definition cginverseoperator.hh:532
DomainFunctionType DestinationType
Definition cginverseoperator.hh:418
void checkPreconditioning(const LinearOperator &linearOp)
Definition cginverseoperator.hh:563
BaseType::DomainFunctionType DomainFunctionType
Definition cginverseoperator.hh:415
std::unique_ptr< PreconditioningType > precondObj_
Definition cginverseoperator.hh:589
Precondtioner, multiplies with inverse of the diagonal works with.
Definition diagonalpreconditioner.hh:162
Definition solver/parameter.hh:25
virtual int preconditionMethod(const std::vector< int > standardMethods, const std::vector< std::string > &additionalMethods={}, int defaultMethod=0) const
Definition solver/parameter.hh:203
const ParameterReader & parameter() const
Definition solver/parameter.hh:81
const std::string & keyPrefix() const
Definition solver/parameter.hh:79
T endl(T... args)
T sqrt(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8