# Options for MDA algorithms¶

## GSNewtonMDA¶

Module: `gemseo.mda.sequential_mda`

Here are the options available in GEMSEO:

- Options
****newton_mda_options**(*float*)The options passed to

`MDANewtonRaphson`

.**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The type of linear solver to be used to solve the Newton problem.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**log_convergence**(*bool*)Whether to log the MDA convergence, expressed in terms of normed residuals.

By default it is set to False.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 10.

**max_mda_iter_gs**(*int*)The maximum number of iterations of the Gauss-Seidel solver.

By default it is set to 3.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**relax_factor**(*float*)The relaxation factor.

By default it is set to 0.99.

**tolerance**(*float*)The tolerance of the iterative direct coupling solver; the norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iterating.

By default it is set to 1e-06.

**use_lu_fact**(*bool*)Whether to store a LU factorization of the matrix when using adjoint/forward differentiation. to solve faster multiple RHS problem.

By default it is set to False.

**warm_start**(*bool*)Whether the second iteration and ongoing start from the previous coupling solution.

By default it is set to False.

## MDAChain¶

Module: `gemseo.mda.mda_chain`

Here are the options available in GEMSEO:

- Options
****sub_mda_options**(*Optional[Union[float,*)The options to be passed to the sub-MDAs.

**chain_linearize**(*bool*)Whether to linearize the chain of execution. Otherwise, linearize the overall MDA with base class method. This last option is preferred to minimize computations in adjoint mode, while in direct mode, linearizing the chain may be cheaper.

By default it is set to False.

**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The name of the linear solver.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**log_convergence**(*bool*)Whether to log the MDA convergence, expressed in terms of normed residuals.

By default it is set to False.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 20.

**n_processes**(*int*)The number of processes.

By default it is set to 2.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**sub_coupling_structures**(*Optional[Iterable[MDOCouplingStructure]]*)The coupling structures to be used by the sub-MDAs. If None, they are created from the sub-disciplines.

By default it is set to None.

**sub_mda_class**(*str*)The class name of the sub-MDA.

By default it is set to MDAJacobi.

**tolerance**(*float*)The tolerance of the iterative direct coupling solver; the norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iterating.

By default it is set to 1e-06.

**use_lu_fact**(*bool*)Whether to store a LU factorization of the matrix when using adjoint/forward differentiation. to solve faster multiple RHS problem.

By default it is set to False.

## MDAGaussSeidel¶

Module: `gemseo.mda.gauss_seidel`

Here are the options available in GEMSEO:

- Options
**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The name of the linear solver.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**log_convergence**(*bool*)Whether to log the MDA convergence, expressed in terms of normed residuals.

By default it is set to False.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 10.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**over_relax_factor**(*float*)The relaxation coefficient, used to make the method more robust, if

`0<over_relax_factor<1`

or faster if`1<over_relax_factor<=2`

. If`over_relax_factor =1.`

, it is deactivated.By default it is set to 1.0.

**tolerance**(*float*)The tolerance of the iterative direct coupling solver; the norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iterating.

By default it is set to 1e-06.

**use_lu_fact**(*bool*)Whether to store a LU factorization of the matrix when using adjoint/forward differentiation. to solve faster multiple RHS problem.

By default it is set to False.

**warm_start**(*bool*)Whether the second iteration and ongoing start from the previous coupling solution.

By default it is set to False.

## MDAJacobi¶

Module: `gemseo.mda.jacobi`

Here are the options available in GEMSEO:

- Options
**acceleration**(*str*)The type of acceleration to be used to extrapolate the residuals and save CPU time by reusing the information from the last iterations, either

`None`

,`"m2d"`

, or`"secant"`

,`"m2d"`

is faster but uses the 2 last iterations.By default it is set to m2d.

**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The name of the linear solver.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**log_convergence**(*bool*)Whether to log the MDA convergence, expressed in terms of normed residuals.

By default it is set to False.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 10.

**n_processes**(*int*)The maximum number of processors on which to run.

By default it is set to 2.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**tolerance**(*float*)By default it is set to 1e-06.

**use_lu_fact**(*bool*)By default it is set to False.

**use_threading**(*bool*)Whether to use threads instead of processes to parallelize the execution; multiprocessing will copy (serialize) all the disciplines, while threading will share all the memory. This is important to note if you want to execute the same discipline multiple times, you shall use multiprocessing.

By default it is set to True.

**warm_start**(*bool*)Whether the second iteration and ongoing start from the previous coupling solution.

By default it is set to False.

## MDANewtonRaphson¶

Module: `gemseo.mda.newton`

Here are the options available in GEMSEO:

- Options
**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The name of the linear solver.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**log_convergence**(*bool*)Whether to log the MDA convergence, expressed in terms of normed residuals.

By default it is set to False.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 10.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**relax_factor**(*float*)The relaxation factor in the Newton step.

By default it is set to 0.99.

**tolerance**(*float*)By default it is set to 1e-06.

**use_lu_fact**(*bool*)By default it is set to False.

**warm_start**(*bool*)Whether the second iteration and ongoing start from the previous coupling solution.

By default it is set to False.

## MDAQuasiNewton¶

Module: `gemseo.mda.newton`

Here are the options available in GEMSEO:

- Options
**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The name of the linear solver.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 10.

**method**(*str*)The name of the method in scipy root finding, among

`QUASI_NEWTON_METHODS`

.By default it is set to hybr.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**tolerance**(*float*)By default it is set to 1e-06.

**use_gradient**(*bool*)Whether to use the analytic gradient of the discipline.

By default it is set to False.

**use_lu_fact**(*bool*)By default it is set to False.

**warm_start**(*bool*)Whether the second iteration and ongoing start from the previous coupling solution.

By default it is set to False.

## MDARoot¶

Module: `gemseo.mda.newton`

Here are the options available in GEMSEO:

- Options
**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The name of the linear solver.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**log_convergence**(*bool*)Whether to log the MDA convergence, expressed in terms of normed residuals.

By default it is set to False.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 10.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**tolerance**(*float*)By default it is set to 1e-06.

**use_lu_fact**(*bool*)By default it is set to False.

**warm_start**(*bool*)Whether the second iteration and ongoing start from the previous coupling solution.

By default it is set to False.

## MDASequential¶

Module: `gemseo.mda.sequential_mda`

Here are the options available in GEMSEO:

- Options
**coupling_structure**(*Optional[MDOCouplingStructure]*)The coupling structure to be used by the MDA. If None, it is created from disciplines.

By default it is set to None.

**disciplines**(*Sequence[MDODiscipline]*)The disciplines from which to compute the MDA.

**grammar_type**(*str*)The type of the input and output grammars, either

`JSON_GRAMMAR_TYPE`

or`SIMPLE_GRAMMAR_TYPE`

.By default it is set to JSONGrammar.

**linear_solver**(*str*)The name of the linear solver.

By default it is set to DEFAULT.

**linear_solver_options**(*Mapping[str,Any]*)The options passed to the linear solver factory.

By default it is set to None.

**linear_solver_tolerance**(*float*)The tolerance of the linear solver in the adjoint equation.

By default it is set to 1e-12.

**max_mda_iter**(*int*)The maximum iterations number for the MDA algorithm.

By default it is set to 10.

**mda_sequence**(*Sequence[MDA]*)The sequence of MDAs.

**name**(*Optional[str]*)The name to be given to the MDA. If None, use the name of the class.

By default it is set to None.

**tolerance**(*float*)By default it is set to 1e-06.

**use_lu_fact**(*bool*)By default it is set to False.

**warm_start**(*bool*)Whether the second iteration and ongoing start from the previous coupling solution.

By default it is set to False.