29 const std::vector<std::shared_ptr<State>> &all_states,
30 const std::vector<std::shared_ptr<DiffCache>> &all_diff_caches,
34 const std::vector<std::shared_ptr<AdjointForm>> &stopping_conditions,
36 const std::vector<std::shared_ptr<State>> &all_states,
37 const std::vector<std::shared_ptr<DiffCache>> &all_diff_caches,
40 double value(
const Eigen::VectorXd &
x)
override;
42 void gradient(
const Eigen::VectorXd &
x, Eigen::VectorXd &gradv)
override;
44 void save_to_file(
const int iter_num,
const Eigen::VectorXd &x0);
45 bool is_step_valid(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
override;
47 double max_step_size(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
override;
49 void line_search_begin(
const Eigen::VectorXd &x0,
const Eigen::VectorXd &x1)
override;
51 void post_step(
const polysolve::nonlinear::PostStepData &data)
override;
52 bool stop(
const TVector &
x)
override;
59 std::shared_ptr<AdjointForm>
form_;
bool after_line_search_custom_operation(const Eigen::VectorXd &x0, const Eigen::VectorXd &x1) override
double max_step_size(const Eigen::VectorXd &x0, const Eigen::VectorXd &x1) override
void gradient(const Eigen::VectorXd &x, Eigen::VectorXd &gradv) override
std::ofstream solution_ostream
void save_to_file(const int iter_num, const Eigen::VectorXd &x0)
bool stop(const TVector &x) override
bool is_step_valid(const Eigen::VectorXd &x0, const Eigen::VectorXd &x1) override
std::vector< std::shared_ptr< AdjointForm > > stopping_conditions_
std::vector< std::shared_ptr< DiffCache > > all_diff_caches_
void hessian(const Eigen::VectorXd &x, StiffnessMatrix &hessian) override
void post_step(const polysolve::nonlinear::PostStepData &data) override
void line_search_end() override
void solution_changed(const Eigen::VectorXd &new_x) override
bool is_step_collision_free(const Eigen::VectorXd &x0, const Eigen::VectorXd &x1) override
std::vector< int > solve_in_order
std::vector< bool > active_state_mask
VariableToSimulationGroup variables_to_simulation_
double value(const Eigen::VectorXd &x) override
std::vector< std::shared_ptr< State > > all_states_
std::shared_ptr< AdjointForm > form_
void line_search_begin(const Eigen::VectorXd &x0, const Eigen::VectorXd &x1) override
A collection of VariableToSimulation.
Eigen::SparseMatrix< double, Eigen::ColMajor > StiffnessMatrix