KASKADE 7 development version
Public Types | Public Member Functions | Static Public Attributes | List of all members
Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl > Class Template Reference

#include <comp_step.hh>

Detailed Description

template<class Assembler, class Preconditioner, class VariableSet, int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
class Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >

Definition at line 1789 of file comp_step.hh.

Inheritance diagram for Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >:
Kaskade::AbstractTangentialSpace

Public Types

typedef Preconditioner::Domain Domain
 
typedef Preconditioner::Range Range
 
typedef Preconditioner::Assembler NormalStepAssembler
 
typedef OptimalControlTraits< typename Assembler::Functional::Functional, Assembler > Traits
 
typedef double Scalar
 
typedef MGProjectionOnTangentSpace< NormalStepAssembler, components, Traits::stateId, Traits::controlId, Traits::adjointId > Projection
 
typedef Assembler::Functional::Functional Functional
 
typedef CGBase< Domain, Range, cgImpl > Solver
 
typedef Bridge::ConnectedKaskadeLinearization< typename NormalStepAssembler::Functional::Functional > NormalBridgeLinearization
 
typedef Bridge::ConnectedKaskadeLinearization< typename Assembler::Functional::Functional > TangentialBridgeLinearization
 
typedef Assembler::Functional::Functional TF
 
typedef Dune::FieldVector< double, 1 > field_type
 

Public Member Functions

 ProjectedAPCGSolver (Preconditioner &P_, Scalar accuracy_, int verbose_=0, size_t maxSteps_=500, double eps_=1e-12)
 
virtual ~ProjectedAPCGSolver ()
 
virtual void setRelativeAccuracy (double accuracy_) final
 Specify accuracy that should be achieved. More...
 
void usePreconditionerForNorm ()
 
void setLookAHead (size_t d)
 
virtual int nSolutionVectors () const final
 The maximal number of solution vectors, returned by basis. More...
 
virtual bool localConvergenceLikely () final
 
virtual AbstractFunctionSpaceElement & getCorrectRhs () final
 
virtual void setEps (double eps_)
 
virtual void setLipschitzConstant (double omega)
 
int basis (std::vector< std::shared_ptr< AbstractFunctionSpaceElement > > &corrections, LagrangeLinearization &linearization, AbstractFunctionSpaceElement const &normalStep, double nu0, AbstractFunctionSpaceElement *residual=nullptr)
 
virtual bool getNorms (Dune::Matrix< field_type > &M) const
 Returns true, if some information on the norm is available. More...
 
virtual void regularize (bool)
 
virtual bool regularizationEnabled () const
 

Static Public Attributes

static constexpr int yIdx = Traits::yIdx
 
static constexpr int uIdx = Traits::uIdx
 
static constexpr int pIdx = Traits::pIdx
 

Member Typedef Documentation

◆ Domain

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef Preconditioner::Domain Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::Domain

Definition at line 1792 of file comp_step.hh.

◆ field_type

Definition at line 22 of file opt_interface.hh.

◆ Functional

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef Assembler::Functional::Functional Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::Functional

Definition at line 1798 of file comp_step.hh.

◆ NormalBridgeLinearization

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef Bridge::ConnectedKaskadeLinearization<typename NormalStepAssembler::Functional::Functional> Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::NormalBridgeLinearization

Definition at line 1803 of file comp_step.hh.

◆ NormalStepAssembler

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef Preconditioner::Assembler Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::NormalStepAssembler

Definition at line 1794 of file comp_step.hh.

◆ Projection

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef MGProjectionOnTangentSpace<NormalStepAssembler,components,Traits::stateId,Traits::controlId,Traits::adjointId> Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::Projection

Definition at line 1797 of file comp_step.hh.

◆ Range

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef Preconditioner::Range Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::Range

Definition at line 1793 of file comp_step.hh.

◆ Scalar

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef double Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::Scalar

Definition at line 1796 of file comp_step.hh.

◆ Solver

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef CGBase<Domain,Range,cgImpl> Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::Solver

Definition at line 1802 of file comp_step.hh.

◆ TangentialBridgeLinearization

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef Bridge::ConnectedKaskadeLinearization<typename Assembler::Functional::Functional> Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::TangentialBridgeLinearization

Definition at line 1804 of file comp_step.hh.

◆ TF

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef Assembler::Functional::Functional Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::TF

Definition at line 1805 of file comp_step.hh.

◆ Traits

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
typedef OptimalControlTraits<typename Assembler::Functional::Functional,Assembler> Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::Traits

Definition at line 1795 of file comp_step.hh.

Constructor & Destructor Documentation

◆ ProjectedAPCGSolver()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::ProjectedAPCGSolver ( Preconditioner &  P_,
Scalar  accuracy_,
int  verbose_ = 0,
size_t  maxSteps_ = 500,
double  eps_ = 1e-12 
)
inline

Definition at line 1807 of file comp_step.hh.

◆ ~ProjectedAPCGSolver()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
virtual Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::~ProjectedAPCGSolver ( )
inlinevirtual

Definition at line 1811 of file comp_step.hh.

Member Function Documentation

◆ basis()

int Kaskade::AbstractTangentialSpace::basis ( std::vector< std::shared_ptr< AbstractFunctionSpaceElement > > &  corrections,
LagrangeLinearization &  linearization,
AbstractFunctionSpaceElement const &  normalStep,
double  nu0,
AbstractFunctionSpaceElement *  residual = nullptr 
)
inlineinherited

Solve with possibly multiple solutions, return value: number of computed solutions

Definition at line 27 of file opt_interface.hh.

◆ getCorrectRhs()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
virtual AbstractFunctionSpaceElement & Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::getCorrectRhs ( )
inlinefinalvirtual

Implements Kaskade::AbstractTangentialSpace.

Definition at line 1829 of file comp_step.hh.

◆ getNorms()

virtual bool Kaskade::AbstractTangentialSpace::getNorms ( Dune::Matrix< field_type > &  M) const
inlinevirtualinherited

Returns true, if some information on the norm is available.

Definition at line 42 of file opt_interface.hh.

◆ localConvergenceLikely()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
virtual bool Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::localConvergenceLikely ( )
inlinefinalvirtual

Reimplemented from Kaskade::AbstractTangentialSpace.

Definition at line 1824 of file comp_step.hh.

◆ nSolutionVectors()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
virtual int Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::nSolutionVectors ( ) const
inlinefinalvirtual

The maximal number of solution vectors, returned by basis.

Implements Kaskade::AbstractTangentialSpace.

Definition at line 1823 of file comp_step.hh.

◆ regularizationEnabled()

virtual bool Kaskade::AbstractTangentialSpace::regularizationEnabled ( ) const
inlinevirtualinherited

Definition at line 48 of file opt_interface.hh.

◆ regularize()

virtual void Kaskade::AbstractTangentialSpace::regularize ( bool  )
inlinevirtualinherited

Definition at line 46 of file opt_interface.hh.

◆ setEps()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
virtual void Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::setEps ( double  eps_)
inlinevirtual

Reimplemented from Kaskade::AbstractTangentialSpace.

Definition at line 1834 of file comp_step.hh.

◆ setLipschitzConstant()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
virtual void Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::setLipschitzConstant ( double  omega)
inlinevirtual

Reimplemented from Kaskade::AbstractTangentialSpace.

Definition at line 1836 of file comp_step.hh.

◆ setLookAHead()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
void Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::setLookAHead ( size_t  d)
inline

Definition at line 1821 of file comp_step.hh.

◆ setRelativeAccuracy()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
virtual void Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::setRelativeAccuracy ( double  accuracy)
inlinefinalvirtual

Specify accuracy that should be achieved.

Implements Kaskade::AbstractTangentialSpace.

Definition at line 1813 of file comp_step.hh.

◆ usePreconditionerForNorm()

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
void Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::usePreconditionerForNorm ( )
inline

Definition at line 1819 of file comp_step.hh.

Member Data Documentation

◆ pIdx

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
constexpr int Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::pIdx = Traits::pIdx
staticconstexpr

Definition at line 1801 of file comp_step.hh.

◆ uIdx

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
constexpr int Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::uIdx = Traits::uIdx
staticconstexpr

Definition at line 1800 of file comp_step.hh.

◆ yIdx

template<class Assembler , class Preconditioner , class VariableSet , int components = 1, CGImplementationType cgImpl = CGImplementationType::HYBRID>
constexpr int Kaskade::ProjectedAPCGSolver< Assembler, Preconditioner, VariableSet, components, cgImpl >::yIdx = Traits::yIdx
staticconstexpr

Definition at line 1799 of file comp_step.hh.


The documentation for this class was generated from the following file: