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 AbstractFunctionSpaceElementgetCorrectRhs () 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: