.. Copyright 2021 IRT Saint-Exupéry, https://www.irt-saintexupery.com This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. .. _gen_mda_algos: MDA algorithms options ====================== List of available algorithms: :ref:`GSNewtonMDA_options` - :ref:`MDAChain_options` - :ref:`MDAGaussSeidel_options` - :ref:`MDAJacobi_options` - :ref:`MDANewtonRaphson_options` - :ref:`MDAQuasiNewton_options` - :ref:`MDARoot_options` - :ref:`MDASequential_options` - :ref:`SobieskiMDAGaussSeidel_options` - :ref:`SobieskiMDAJacobi_options` - .. _GSNewtonMDA_options: :class:`~gemseo.mda.sequential_mda.GSNewtonMDA` ----------------------------------------------- Description ~~~~~~~~~~~ Perform some GaussSeidel iterations and then NewtonRaphson iterations. Options ~~~~~~~ - **grammar_type**, :code:`str` - the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPE - **linear_solver**, :code:`str` - type of linear solver to be used to solve the Newton problem - **linear_solver_tolerance**, :code:`float` - Tolerance of the linear solver in the adjoint equation - **max_mda_iter**, :code:`int` - maximum number of iterations - **max_mda_iter_gs**, :code:`int` - maximum number of iterations of the GaussSeidel solver - **name**, :code:`str` - name - **norm0**, :code:`float` - reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0`__ is parameterized by a relaxation factor :math:`\alpha \in (0, 1]` to limit the length of the steps taken along the Newton direction. The new iterate is given by: .. math:: x_{k+1} = x_k - \alpha f'(x_k)^{-1} f(x_k) Options ~~~~~~~ - **grammar_type**, :code:`str` - the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPE - **linear_solver**, :code:`str` - linear solver used to compute the Newton step - **linear_solver_tolerance**, :code:`float` - Tolerance of the linear solver in the adjoint equation - **max_mda_iter**, :code:`int` - maximum number of iterations - **name**, :code:`str` - name - **norm0**, :code:`float` - reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0`__ include numerous variants ( `Broyden `__, `Levenberg-Marquardt `__, ...). The name of the variant should be provided as a parameter :code:`method` of the class. The new iterate is given by: .. math:: x_{k+1} = x_k - \rho_k B_k f(x_k) where :math:`\rho_k` is a coefficient chosen in order to minimize the convergence and :math:`B_k` is an approximation of the inverse of the Jacobian :math:`Df(x_k)^{-1}`. Options ~~~~~~~ - **grammar_type**, :code:`str` - the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPE - **linear_solver_tolerance**, :code:`float` - Tolerance of the linear solver in the adjoint equation - **max_mda_iter**, :code:`int` - maximum number of iterations - **method**, :code:`str` - method name in scipy root finding, among self.QUASI_NEWTON_METHODS - **name**, :code:`str` - name - **norm0**, :code:`float` - reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0