gemseo.mda.quasi_newton_settings module#

Settings for quasi-Newton MDA.

Settings MDAQuasiNewton_Settings(*, coupling_structure=None, linear_solver=LinearSolver.DEFAULT, linear_solver_settings=None, linear_solver_tolerance=1e-12, log_convergence=False, max_mda_iter=20, name='', tolerance=1e-06, use_lu_fact=False, warm_start=False, acceleration_method=AccelerationMethod.NONE, over_relaxation_factor=1.0, n_processes=2, use_threading=True, execute_before_linearizing=True, method=QuasiNewtonMethod.HYBRID, use_gradient=False)[source]#

Bases: BaseMDARootSettings

The settings for MDAQuasiNewton.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:
  • coupling_structure (CouplingStructure | None)

  • linear_solver (LinearSolver) --

    By default it is set to "DEFAULT".

  • linear_solver_settings (Mapping[str, Any] | BaseLinearSolverSettings)

  • linear_solver_tolerance (Annotated[float, Ge(ge=0)]) --

    By default it is set to 1e-12.

  • log_convergence (bool) --

    By default it is set to False.

  • max_mda_iter (Annotated[int, Ge(ge=0)]) --

    By default it is set to 20.

  • name (str) --

    By default it is set to "".

  • tolerance (Annotated[float, Ge(ge=0)]) --

    By default it is set to 1e-06.

  • use_lu_fact (bool) --

    By default it is set to False.

  • warm_start (bool) --

    By default it is set to False.

  • acceleration_method (AccelerationMethod) --

    By default it is set to "NoTransformation".

  • over_relaxation_factor (Annotated[float, Le(le=2.0), Ge(ge=0)]) --

    By default it is set to 1.0.

  • n_processes (Annotated[int, Gt(gt=0)]) --

    By default it is set to 2.

  • use_threading (bool) --

    By default it is set to True.

  • execute_before_linearizing (bool) --

    By default it is set to True.

  • method (QuasiNewtonMethod) --

    By default it is set to "hybr".

  • use_gradient (bool) --

    By default it is set to False.

Return type:

None

method: QuasiNewtonMethod = QuasiNewtonMethod.HYBRID#

The name of the quasi-Newton method.

use_gradient: bool = False#

Whether to use the analytic gradient of the discipline.

class QuasiNewtonMethod(value)[source]#

Bases: StrEnum

A quasi-Newton method.

ANDERSON = 'anderson'#
BROYDEN1 = 'broyden1'#
BROYDEN2 = 'broyden2'#
DF_SANE = 'df-sane'#
DIAG_BROYDEN = 'diagbroyden'#
EXCITING_MIXING = 'excitingmixing'#
HYBRID = 'hybr'#
KRYLOV = 'krylov'#
LEVENBERG_MARQUARDT = 'lm'#
LINEAR_MIXING = 'linearmixing'#