PolyFEM
Loading...
Searching...
No Matches
polyfem::solver::FullNLProblem Class Reference

#include <FullNLProblem.hpp>

Inheritance diagram for polyfem::solver::FullNLProblem:
[legend]
Collaboration diagram for polyfem::solver::FullNLProblem:
[legend]

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_
 

Detailed Description

Definition at line 11 of file FullNLProblem.hpp.

Constructor & Destructor Documentation

◆ FullNLProblem()

polyfem::solver::FullNLProblem::FullNLProblem ( const std::vector< std::shared_ptr< Form > > &  forms)

Definition at line 5 of file FullNLProblem.cpp.

◆ ~FullNLProblem()

virtual polyfem::solver::FullNLProblem::~FullNLProblem ( )
virtualdefault

Member Function Documentation

◆ finish()

void polyfem::solver::FullNLProblem::finish ( )
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().

Here is the caller graph for this function:

◆ forms()

std::vector< std::shared_ptr< Form > > & polyfem::solver::FullNLProblem::forms ( )
inline

Definition at line 39 of file FullNLProblem.hpp.

References forms_.

◆ gradient()

void polyfem::solver::FullNLProblem::gradient ( const TVector &  x,
TVector &  gradv 
)
overridevirtual

Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.

Definition at line 96 of file FullNLProblem.cpp.

References forms_, and x.

Referenced by polyfem::solver::NLProblem::gradient().

Here is the caller graph for this function:

◆ hessian()

void polyfem::solver::FullNLProblem::hessian ( const TVector &  x,
THessian &  hessian 
)
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

void polyfem::solver::FullNLProblem::init ( const TVector &  x0)
overridevirtual

Reimplemented in polyfem::solver::NLHomoProblem.

Definition at line 10 of file FullNLProblem.cpp.

References forms_, and x.

Referenced by polyfem::solver::NLHomoProblem::init(), polyfem::solver::ALSolver::solve_al(), polyfem::solver::ALSolver::solve_reduced(), and polyfem::State::solve_tensor_nonlinear().

Here is the caller graph for this function:

◆ init_lagging()

void polyfem::solver::FullNLProblem::init_lagging ( const TVector &  x)
virtual

Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.

Definition at line 22 of file FullNLProblem.cpp.

References forms_, and x.

Referenced by polyfem::solver::NLProblem::init_lagging().

Here is the caller graph for this function:

◆ is_step_collision_free()

bool polyfem::solver::FullNLProblem::is_step_collision_free ( const TVector &  x0,
const TVector &  x1 
)
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().

Here is the caller graph for this function:

◆ is_step_valid()

bool polyfem::solver::FullNLProblem::is_step_valid ( const TVector &  x0,
const TVector &  x1 
)
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().

Here is the caller graph for this function:

◆ line_search_begin()

void polyfem::solver::FullNLProblem::line_search_begin ( const TVector &  x0,
const TVector &  x1 
)
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().

Here is the caller graph for this function:

◆ line_search_end()

void polyfem::solver::FullNLProblem::line_search_end ( )
overridevirtual

Reimplemented in polyfem::solver::AdjointNLProblem.

Definition at line 56 of file FullNLProblem.cpp.

References forms_.

Referenced by polyfem::solver::ALSolver::solve_al().

Here is the caller graph for this function:

◆ max_lagging_iterations()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ max_step_size()

double polyfem::solver::FullNLProblem::max_step_size ( const TVector &  x0,
const TVector &  x1 
)
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().

Here is the caller graph for this function:

◆ post_step()

void polyfem::solver::FullNLProblem::post_step ( const polysolve::nonlinear::PostStepData &  data)
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().

Here is the caller graph for this function:

◆ set_project_to_psd()

void polyfem::solver::FullNLProblem::set_project_to_psd ( bool  val)
overridevirtual

Definition at line 16 of file FullNLProblem.cpp.

References forms_.

◆ solution_changed()

void polyfem::solver::FullNLProblem::solution_changed ( const TVector &  new_x)
overridevirtual

Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.

Definition at line 122 of file FullNLProblem.cpp.

References forms_, and x.

Referenced by polyfem::solver::NLProblem::solution_changed().

Here is the caller graph for this function:

◆ stop()

virtual bool polyfem::solver::FullNLProblem::stop ( const TVector &  x)
inlineoverridevirtual

Reimplemented in polyfem::solver::AdjointNLProblem.

Definition at line 41 of file FullNLProblem.hpp.

◆ update_lagging()

void polyfem::solver::FullNLProblem::update_lagging ( const TVector &  x,
const int  iter_num 
)
virtual

Reimplemented in polyfem::solver::NLHomoProblem, and polyfem::solver::NLProblem.

Definition at line 28 of file FullNLProblem.cpp.

References forms_, and x.

Referenced by polyfem::solver::NLProblem::update_lagging().

Here is the caller graph for this function:

◆ uses_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().

Here is the caller graph for this function:

◆ value()

double polyfem::solver::FullNLProblem::value ( const TVector &  x)
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().

Here is the caller graph for this function:

Member Data Documentation

◆ forms_


The documentation for this class was generated from the following files: