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