4#include <polysolve/nonlinear/Problem.hpp>
16 virtual void init(
const TVector &x0)
override;
18 virtual double value(
const TVector &
x)
override;
19 virtual void gradient(
const TVector &
x, TVector &gradv)
override;
22 virtual bool is_step_valid(
const TVector &x0,
const TVector &x1)
override;
24 virtual double max_step_size(
const TVector &x0,
const TVector &x1)
override;
28 virtual void post_step(
const polysolve::nonlinear::PostStepData &data)
override;
39 std::vector<std::shared_ptr<Form>> &
forms() {
return forms_; }
41 virtual bool stop(
const TVector &
x)
override {
return false; }
50 std::vector<std::shared_ptr<Form>>
forms_;
virtual double max_step_size(const TVector &x0, const TVector &x1) override
virtual void init_lagging(const TVector &x)
virtual void set_project_to_psd(bool val) override
virtual void hessian(const TVector &x, THessian &hessian) override
bool uses_lagging() const
virtual bool stop(const TVector &x) override
virtual bool is_step_collision_free(const TVector &x0, const TVector &x1)
std::vector< std::shared_ptr< Form > > forms_
virtual void post_step(const polysolve::nonlinear::PostStepData &data) override
virtual void update_lagging(const TVector &x, const int iter_num)
std::vector< std::shared_ptr< Form > > & forms()
virtual bool is_step_valid(const TVector &x0, const TVector &x1) override
virtual void line_search_end() override
int max_lagging_iterations() const
virtual double value(const TVector &x) override
virtual void init(const TVector &x0) override
virtual void solution_changed(const TVector &new_x) override
virtual void gradient(const TVector &x, TVector &gradv) override
virtual ~FullNLProblem()=default
virtual void line_search_begin(const TVector &x0, const TVector &x1) override