version 0.4.1
trustregion.hh File Reference

Implementation of the Trust-region method for solving nonlinear equations. More...

#include <iosfwd>
#include <dune/common/float_cmp.hh>
#include <spdlog/spdlog.h>
#include <Eigen/Sparse>
#include <ikarus/linearalgebra/truncatedconjugategradient.hh>
#include <ikarus/solver/nonlinearsolver/solverinfos.hh>
#include <ikarus/utils/defaultfunctions.hh>
#include <ikarus/utils/linearalgebrahelper.hh>
#include <ikarus/utils/observer/observer.hh>
#include <ikarus/utils/observer/observermessages.hh>
#include <ikarus/utils/traits.hh>

Go to the source code of this file.

Classes

struct  Ikarus::TRSettings
 
struct  Ikarus::TrustRegionConfig< preConditioner, UF >
 
struct  Ikarus::AlgoInfo
 Additional information about the TrustRegion algorithm. More...
 
struct  Ikarus::Stats
 Information about the TrustRegion solver. More...
 
class  Ikarus::TrustRegion< NLO, preConditioner, UF >
 Trust Region solver for non-linear optimization problems. More...
 

Namespaces

namespace  Ikarus
 

Enumerations

enum class  Ikarus::PreConditioner { Ikarus::IncompleteCholesky , Ikarus::IdentityPreconditioner , Ikarus::DiagonalPreconditioner }
 Enumeration of available preconditioners for the trust region solver. More...
 
enum class  Ikarus::StopReason {
  Ikarus::gradientNormTolReached , Ikarus::correctionNormTolReached , Ikarus::maximumTimeReached , Ikarus::maximumIterationsReached ,
  Ikarus::dontStop
}
 Enumeration of reasons for stopping the TrustRegion solver. More...
 

Functions

template<typename NLO , typename TRConfig >
requires traits::isSpecializationNonTypeAndTypes<TrustRegionConfig, std::remove_cvref_t<TRConfig>>
::value auto Ikarus::createNonlinearSolver (TRConfig &&config, NLO &&nonLinearOperator)
 Function to create a trust region non-linear solver. More...
 
template<typename NLO , PreConditioner preConditioner = PreConditioner::IncompleteCholesky, typename UF = utils::UpdateDefault>
auto Ikarus::makeTrustRegion (const NLO &nonLinearOperator, UF &&updateFunction={})
 Creates an instance of the TrustRegion solver. More...
 
template<typename NLO , PreConditioner preConditioner = PreConditioner::IncompleteCholesky, typename UF2 = utils::UpdateDefault>
 Ikarus::TrustRegion (const NLO &nonLinearOperator, UF2 &&updateFunction={}) -> TrustRegion< NLO, preConditioner, std::remove_cvref_t< UF2 > >