autopdex.solver.adaptive_load_stepping
- autopdex.solver.adaptive_load_stepping(dofs, settings, static_settings, multiplier_settings=<function <lambda>>, path_dependent=True, implicit_diff_mode=None, max_multiplier=1.0, min_increment=0.01, max_increment=1.0, init_increment=0.2, max_load_steps=1000, target_num_newton_iter=7, newton_tol=1e-10, **kwargs)[source]
Performs adaptive load stepping to solve a nonlinear system of equations.
This function iteratively adjusts the load increment to ensure convergence using a Newton-Raphson solver. The increment size is adaptively controlled based on the convergence behavior of the solver. Works currently only with solver types ‘newton’ and ‘damped newton’.
- Parameters:
dofs (jnp.ndarray or dict) – Initial degrees of freedom.
settings (dict) – Dictionary of problem settings.
static_settings (dict) – Dictionary of static settings that do not change during load steps.
multiplier_settings (callable) – Function to update settings based on the current load multiplier.
path_dependent (bool) – Specifies wether problem is path-dependent (experimental) or not (has an influence on the implicit differentiation).
implicit_diff_mode (string) – Can be either ‘reverse’, ‘forward’ or None. In case of ‘reverse’, only reverse mode differentiation is supported (jacrev), in case of ‘forward’, only forward mode differentiation is supported (jacfwd).
max_multiplier (float) – Maximum value for the load multiplier.
min_increment (float) – Minimum allowable increment size.
max_increment (float) – Maximum allowable increment size.
init_increment (float) – Initial increment size.
max_load_steps (int) – Maximal number of load steps. Only used in case implicit_diff_mod is not None
target_num_newton_iter (int) – Target number of Newton iterations for each load step.
newton_tol (float, optional) – Tolerance for Newton solver convergence. Default is 1e-10.
**kwargs – Additional keyword arguments for the solver.
- Returns:
Solution degrees of freedom after load stepping.
- Return type:
jnp.ndarray