Nonlinear parameters
Hello Developers,
I am trying to understand how to adjust the parameters in the Nonlinear (Newton) solver.
I'm good on "imax" since it's the number of iterations before abort and I think that "eps_a" is the maximum allowable absolute sum total residual before ending the sim (??), but I'm not at all clear on what the other parameters do and how they override each other.
I've dug through the docs and looked at the source, but I'm also still unclear about which parameters will be applicable in different situations.
Could you all point me to the right information? Or better yet just summarize what each of the parameters does and when it is applicable?
nls = Newton({ 'i_max' : 1000, 'eps_a' : 1e10, 'eps_r' : 1.0, 'macheps' : 1e16, 'lin_red' : 1e2, # Linear system error < (eps_a * lin_red). 'ls_red' : 0.1, 'ls_red_warp': 0.001, 'ls_on' : 1.1, 'ls_min' : 1e5, 'check' : 0, 'delta' : 1e6, 'is_plot' : False, 'problem' : 'nonlinear'} , lin_solver=ls, status=nls_status)
Thank you! David
Hello David,
I have added the missing information to the Newton's solver docstring, check out [1], and let me know about any further questions. Usually, one needs to set only i_max, eps_a and eps_r and the linesearch options.
Btw. you should hardly need something like 1000 iterations  if it does not converge in 1020 (for moderate sized problems), then something is probably wrong.
Cheers, r. PS: I cannot for some reason update the docs at sfepy.org now  that's why [1] is a link to the commit.
[1] https://github.com/sfepy/sfepy/commit/15635b260c13bff5fb6fb9a8b91be58a304a07...
On 07/21/2012 02:15 AM, David N. Mashburn wrote:
Hello Developers,
I am trying to understand how to adjust the parameters in the Nonlinear (Newton) solver.
I'm good on "imax" since it's the number of iterations before abort and I think that "eps_a" is the maximum allowable absolute sum total residual before ending the sim (??), but I'm not at all clear on what the other parameters do and how they override each other.
I've dug through the docs and looked at the source, but I'm also still unclear about which parameters will be applicable in different situations.
Could you all point me to the right information? Or better yet just summarize what each of the parameters does and when it is applicable?
nls = Newton({ 'i_max' : 1000, 'eps_a' : 1e10, 'eps_r' : 1.0, 'macheps' : 1e16, 'lin_red' : 1e2, # Linear system error < (eps_a * lin_red). 'ls_red' : 0.1, 'ls_red_warp': 0.001, 'ls_on' : 1.1, 'ls_min' : 1e5, 'check' : 0, 'delta' : 1e6, 'is_plot' : False, 'problem' : 'nonlinear'} , lin_solver=ls, status=nls_status)
Thank you! David
Robert,
Great! That helps tremendously.
Thanks, David
On 07/21/2012 06:58 AM, Robert Cimrman wrote:
Hello David,
I have added the missing information to the Newton's solver docstring, check out [1], and let me know about any further questions. Usually, one needs to set only i_max, eps_a and eps_r and the linesearch options.
Btw. you should hardly need something like 1000 iterations  if it does not converge in 1020 (for moderate sized problems), then something is probably wrong.
Cheers, r. PS: I cannot for some reason update the docs at sfepy.org now  that's why [1] is a link to the commit.
[1] https://github.com/sfepy/sfepy/commit/15635b260c13bff5fb6fb9a8b91be58a304a07...
On 07/21/2012 02:15 AM, David N. Mashburn wrote:
Hello Developers,
I am trying to understand how to adjust the parameters in the Nonlinear (Newton) solver.
I'm good on "imax" since it's the number of iterations before abort and I think that "eps_a" is the maximum allowable absolute sum total residual before ending the sim (??), but I'm not at all clear on what the other parameters do and how they override each other.
I've dug through the docs and looked at the source, but I'm also still unclear about which parameters will be applicable in different situations.
Could you all point me to the right information? Or better yet just summarize what each of the parameters does and when it is applicable?
nls = Newton({ 'i_max' : 1000, 'eps_a' : 1e10, 'eps_r' : 1.0, 'macheps' : 1e16, 'lin_red' : 1e2, # Linear system error < (eps_a * lin_red). 'ls_red' : 0.1, 'ls_red_warp': 0.001, 'ls_on' : 1.1, 'ls_min' : 1e5, 'check' : 0, 'delta' : 1e6, 'is_plot' : False, 'problem' : 'nonlinear'} , lin_solver=ls, status=nls_status)
Thank you! David
Hth! r.
On 07/21/2012 07:37 PM, David N. Mashburn wrote:
Robert,
Great! That helps tremendously.
Thanks, David
On 07/21/2012 06:58 AM, Robert Cimrman wrote:
Hello David,
I have added the missing information to the Newton's solver docstring, check out [1], and let me know about any further questions. Usually, one needs to set only i_max, eps_a and eps_r and the linesearch options.
Btw. you should hardly need something like 1000 iterations  if it does not converge in 1020 (for moderate sized problems), then something is probably wrong.
Cheers, r. PS: I cannot for some reason update the docs at sfepy.org now  that's why [1] is a link to the commit.
[1] https://github.com/sfepy/sfepy/commit/15635b260c13bff5fb6fb9a8b91be58a304a07...
FYI: It's now on the web: http://sfepy.org/docdevel/src/sfepy/solvers/nls.html
r.
On 07/21/2012 08:07 PM, Robert Cimrman wrote:
Hth! r.
On 07/21/2012 07:37 PM, David N. Mashburn wrote:
Robert,
Great! That helps tremendously.
Thanks, David
On 07/21/2012 06:58 AM, Robert Cimrman wrote:
Hello David,
I have added the missing information to the Newton's solver docstring, check out [1], and let me know about any further questions. Usually, one needs to set only i_max, eps_a and eps_r and the linesearch options.
Btw. you should hardly need something like 1000 iterations  if it does not converge in 1020 (for moderate sized problems), then something is probably wrong.
Cheers, r. PS: I cannot for some reason update the docs at sfepy.org now  that's why [1] is a link to the commit.
[1] https://github.com/sfepy/sfepy/commit/15635b260c13bff5fb6fb9a8b91be58a304a07...
participants (2)

David N. Mashburn

Robert Cimrman