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 > > | |