File tree Expand file tree Collapse file tree 4 files changed +4
-3
lines changed
Expand file tree Collapse file tree 4 files changed +4
-3
lines changed Original file line number Diff line number Diff line change @@ -246,9 +246,8 @@ namespace polysolve::nonlinear
246246 m_line_search = line_search::LineSearch::create (params, m_logger);
247247 solver_info[" line_search" ] = params[" line_search" ][" method" ];
248248 m_line_search->use_grad_norm_tol = params[" line_search" ][" use_grad_norm_tol" ];
249- m_line_search->use_grad_norm_tol *= characteristic_length;
250249 m_line_search->rel_interpolation_accuracy_tol = params[" rel_grad_norm_tol" ];
251- m_line_search->rel_interpolation_accuracy_tol *= 1e2 ;
250+ // m_line_search->rel_interpolation_accuracy_tol *= 1e2;
252251 m_line_search->norm_type = params[" norm_type" ];
253252 }
254253
Original file line number Diff line number Diff line change @@ -117,6 +117,7 @@ namespace polysolve::nonlinear
117117 m_stop_rescaled.relGradNorm = m_stop.relGradNorm ;
118118 m_stop_rescaled.relXDelta = m_stop.relXDelta ;
119119 m_stop_rescaled.newtonDecrement = m_stop.newtonDecrement * objFunc.energy_norm_rescaling (norm_type);
120+ m_line_search->grad_norm_rescaling = objFunc.grad_norm_rescaling (norm_type);
120121 }
121122
122123 // / @brief Stopping criteria
Original file line number Diff line number Diff line change @@ -138,7 +138,7 @@ namespace polysolve::nonlinear::line_search
138138 return step_size;
139139
140140 // TODO: Fix this
141- const bool use_grad_norm = objFunc.grad_norm (initial_grad, norm_type) < use_grad_norm_tol;
141+ const bool use_grad_norm = objFunc.grad_norm (initial_grad, norm_type) < use_grad_norm_tol * grad_norm_rescaling ;
142142 const double starting_step_size = step_size;
143143
144144 // ----------------------
Original file line number Diff line number Diff line change @@ -74,6 +74,7 @@ namespace polysolve::nonlinear::line_search
7474 double classical_line_search_time;
7575
7676 double use_grad_norm_tol = -1 ;
77+ double grad_norm_rescaling = 1 ;
7778 bool try_interpolating_step;
7879 double rel_interpolation_accuracy_tol = 0 ;
7980 std::string norm_type = " Euclidean" ;
You can’t perform that action at this time.
0 commit comments