Loading [MathJax]/jax/input/TeX/config.js
PolyFEM
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
polyfem::solver::StaticBoundaryNLProblem Class Reference

#include <StaticBoundaryNLProblem.hpp>

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

Public Member Functions

 StaticBoundaryNLProblem (const int full_size, const Eigen::VectorXd &boundary_values, const std::vector< std::shared_ptr< polyfem::solver::Form > > &forms, const std::vector< std::shared_ptr< AugmentedLagrangianForm > > &penalty_forms)
 
- Public Member Functions inherited from polyfem::solver::NLProblem
 NLProblem (const int full_size, const std::shared_ptr< utils::PeriodicBoundary > &periodic_bc, const double t, const std::vector< std::shared_ptr< Form > > &forms, const std::vector< std::shared_ptr< AugmentedLagrangianForm > > &penalty_forms, const std::shared_ptr< polysolve::linear::Solver > &solver)
 
virtual ~NLProblem ()=default
 
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) override
 
virtual double max_step_size (const TVector &x0, const TVector &x1) override
 
void line_search_begin (const TVector &x0, const TVector &x1) override
 
virtual void post_step (const polysolve::nonlinear::PostStepData &data) override
 
void solution_changed (const TVector &new_x) override
 
void init_lagging (const TVector &x) override
 
void update_lagging (const TVector &x, const int iter_num) override
 
virtual void update_quantities (const double t, const TVector &x)
 
int full_size () const
 
int reduced_size () const
 
void use_full_size ()
 
void use_reduced_size ()
 
TVector full_to_reduced (const TVector &full) const
 
virtual TVector full_to_reduced_grad (const TVector &full) const
 
TVector reduced_to_full (const TVector &reduced) const
 
void full_hessian_to_reduced_hessian (StiffnessMatrix &hessian) const
 
double normalize_forms () override
 
- Public Member Functions inherited from polyfem::solver::FullNLProblem
 FullNLProblem (const std::vector< std::shared_ptr< Form > > &forms)
 
virtual ~FullNLProblem ()=default
 
virtual void init (const TVector &x0) override
 
virtual void line_search_end () override
 
virtual void set_project_to_psd (bool val) override
 
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 ()
 

Private Attributes

const Eigen::MatrixXd boundary_values_
 

Additional Inherited Members

- Protected Types inherited from polyfem::solver::NLProblem
enum class  CurrentSize { FULL_SIZE , REDUCED_SIZE }
 
- Protected Member Functions inherited from polyfem::solver::NLProblem
 NLProblem (const int full_size, const std::vector< std::shared_ptr< Form > > &forms, const std::vector< std::shared_ptr< AugmentedLagrangianForm > > &penalty_forms, const std::shared_ptr< polysolve::linear::Solver > &solver)
 
int current_size () const
 
void setup_constraints ()
 
void update_constraint_values ()
 
- Protected Attributes inherited from polyfem::solver::NLProblem
const int full_size_
 Size of the full problem.
 
int reduced_size_
 Size of the reduced problem.
 
CurrentSize current_size_
 Current size of the problem (either full or reduced size)
 
double t_
 
std::vector< std::shared_ptr< AugmentedLagrangianForm > > penalty_forms_
 
StiffnessMatrix Q1_
 Q1 block of the QR decomposition of the constraints matrix.
 
StiffnessMatrix Q2_
 Q2 block of the QR decomposition of the constraints matrix.
 
StiffnessMatrix Q2t_
 Q2 transpose.
 
StiffnessMatrix R1_
 R1 block of the QR decomposition of the constraints matrix.
 
Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic > P_
 Permutation matrix of the QR decomposition of the constraints matrix.
 
TVector Q1R1iTb_
 Q1_ * (R1_.transpose().triangularView<Eigen::Upper>().solve(constraint_values_))
 
std::shared_ptr< polysolve::linear::Solver > solver_
 
std::shared_ptr< FullNLProblempenalty_problem_
 
int num_penalty_constraints_
 
- Protected Attributes inherited from polyfem::solver::FullNLProblem
std::vector< std::shared_ptr< Form > > forms_
 

Detailed Description

Definition at line 7 of file StaticBoundaryNLProblem.hpp.

Constructor & Destructor Documentation

◆ StaticBoundaryNLProblem()

polyfem::solver::StaticBoundaryNLProblem::StaticBoundaryNLProblem ( const int  full_size,
const Eigen::VectorXd &  boundary_values,
const std::vector< std::shared_ptr< polyfem::solver::Form > > &  forms,
const std::vector< std::shared_ptr< AugmentedLagrangianForm > > &  penalty_forms 
)
inline

Definition at line 10 of file StaticBoundaryNLProblem.hpp.

Member Data Documentation

◆ boundary_values_

const Eigen::MatrixXd polyfem::solver::StaticBoundaryNLProblem::boundary_values_
private

Definition at line 23 of file StaticBoundaryNLProblem.hpp.


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