PolyFEM
|
#include <FullNLProblem.hpp>
Public Member Functions | |
FullNLProblem (const std::vector< std::shared_ptr< Form > > &forms) | |
virtual | ~FullNLProblem ()=default |
virtual void | init (const TVector &x0) override |
virtual double | value (const TVector &x) override |
virtual void | gradient (const TVector &x, TVector &gradv) override |
virtual void | hessian (const TVector &x, THessian &hessian) override |
virtual bool | is_step_valid (const TVector &x0, const TVector &x1) override |
virtual bool | is_step_collision_free (const TVector &x0, const TVector &x1) |
virtual double | max_step_size (const TVector &x0, const TVector &x1) override |
virtual void | line_search_begin (const TVector &x0, const TVector &x1) override |
virtual void | line_search_end () override |
virtual void | post_step (const polysolve::nonlinear::PostStepData &data) override |
virtual void | set_project_to_psd (bool val) override |
virtual void | solution_changed (const TVector &new_x) override |
virtual void | init_lagging (const TVector &x) |
virtual void | update_lagging (const TVector &x, const int iter_num) |
int | max_lagging_iterations () const |
bool | uses_lagging () const |
std::vector< std::shared_ptr< Form > > & | forms () |
virtual bool | stop (const TVector &x) override |
void | finish () |
Protected Attributes | |
std::vector< std::shared_ptr< Form > > | forms_ |
Definition at line 11 of file FullNLProblem.hpp.
polyfem::solver::FullNLProblem::FullNLProblem | ( | const std::vector< std::shared_ptr< Form > > & | forms | ) |
Definition at line 5 of file FullNLProblem.cpp.
|
virtualdefault |
|
inline |
Definition at line 43 of file FullNLProblem.hpp.
References forms_.
Referenced by polyfem::solver::ALSolver::solve_al(), polyfem::solver::ALSolver::solve_reduced(), and polyfem::State::solve_tensor_nonlinear().
|
inline |
Definition at line 39 of file FullNLProblem.hpp.
References forms_.
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 96 of file FullNLProblem.cpp.
Referenced by polyfem::solver::NLProblem::gradient().
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 109 of file FullNLProblem.cpp.
References forms_, hessian(), and x.
Referenced by hessian(), and polyfem::solver::NLProblem::hessian().
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem.
Definition at line 10 of file FullNLProblem.cpp.
Referenced by polyfem::solver::NLHomoProblem::init(), polyfem::solver::ALSolver::solve_al(), polyfem::solver::ALSolver::solve_reduced(), and polyfem::State::solve_tensor_nonlinear().
|
virtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 22 of file FullNLProblem.cpp.
Referenced by polyfem::solver::NLProblem::init_lagging().
|
virtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 79 of file FullNLProblem.cpp.
References forms_.
Referenced by polyfem::solver::NLProblem::is_step_collision_free().
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 71 of file FullNLProblem.cpp.
References forms_.
Referenced by polyfem::solver::NLProblem::is_step_valid().
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 50 of file FullNLProblem.cpp.
References forms_.
Referenced by polyfem::solver::NLProblem::line_search_begin().
|
overridevirtual |
Reimplemented in polyfem::solver::AdjointNLProblem.
Definition at line 56 of file FullNLProblem.cpp.
References forms_.
Referenced by polyfem::solver::ALSolver::solve_al().
int polyfem::solver::FullNLProblem::max_lagging_iterations | ( | ) | const |
Definition at line 34 of file FullNLProblem.cpp.
References forms_, and max_lagging_iterations().
Referenced by max_lagging_iterations(), and polyfem::State::solve_tensor_nonlinear().
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 62 of file FullNLProblem.cpp.
References forms_.
Referenced by polyfem::solver::NLProblem::max_step_size().
|
overridevirtual |
Reimplemented in polyfem::solver::AdjointNLProblem, polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 128 of file FullNLProblem.cpp.
References forms_.
Referenced by polyfem::solver::NLProblem::post_step().
|
overridevirtual |
Definition at line 16 of file FullNLProblem.cpp.
References forms_.
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 122 of file FullNLProblem.cpp.
Referenced by polyfem::solver::NLProblem::solution_changed().
|
inlineoverridevirtual |
Reimplemented in polyfem::solver::AdjointNLProblem.
Definition at line 41 of file FullNLProblem.hpp.
|
virtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 28 of file FullNLProblem.cpp.
Referenced by polyfem::solver::NLProblem::update_lagging().
bool polyfem::solver::FullNLProblem::uses_lagging | ( | ) | const |
Definition at line 42 of file FullNLProblem.cpp.
References forms_.
Referenced by polyfem::State::solve_tensor_nonlinear().
|
overridevirtual |
Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.
Definition at line 87 of file FullNLProblem.cpp.
References forms_, val, and x.
Referenced by polyfem::solver::NLProblem::value().
|
protected |
Definition at line 50 of file FullNLProblem.hpp.
Referenced by finish(), forms(), gradient(), hessian(), init(), init_lagging(), is_step_collision_free(), is_step_valid(), line_search_begin(), line_search_end(), max_lagging_iterations(), max_step_size(), post_step(), set_project_to_psd(), solution_changed(), update_lagging(), polyfem::solver::NLProblem::update_quantities(), uses_lagging(), and value().