gemseo.mda.jacobi module#
A Jacobi algorithm for solving MDAs.
- class MDAJacobi(disciplines, settings_model=None, **settings)[source]#
Bases:
BaseParallelMDASolver
Perform an MDA using the Jacobi algorithm.
This algorithm is a fixed point iteration method to solve systems of non-linear equations of the form,
\[\begin{split}\left\{ \begin{matrix} F_1(x_1, x_2, \dots, x_n) = 0 \\ F_2(x_1, x_2, \dots, x_n) = 0 \\ \vdots \\ F_n(x_1, x_2, \dots, x_n) = 0 \end{matrix} \right.\end{split}\]Beginning with \(x_1^{(0)}, \dots, x_n^{(0)}\), the iterates are obtained as the solution of the following \(n\) independent non-linear equations:
\[\begin{split}\left\{ \begin{matrix} r_1\left( x_1^{(i+1)} \right) = F_1(x_1^{(i+1)}, x_2^{(i)}, \dots, x_n^{(i)}) = 0 \\ r_2\left( x_2^{(i+1)} \right) = F_2(x_1^{(i)}, x_2^{(i+1)}, \dots, x_n^{(i)}) = 0 \\ \vdots \\ r_n\left( x_n^{(i+1)} \right) = F_n(x_1^{(i)}, x_2^{(i)}, \dots, x_n^{(i+1)}) = 0 \end{matrix} \right.\end{split}\]Initialize self. See help(type(self)) for accurate signature.
- Parameters:
disciplines (Sequence[Discipline]) -- The disciplines from which to compute the MDA.
settings_model (MDAJacobi_Settings | None) -- The MDA settings as a Pydantic model. If
None
, use**settings
.**settings (Any) -- The MDA settings. These arguments are ignored when
settings_model
is notNone
.
- Settings#
The pydantic model for the settings.
alias of
MDAJacobi_Settings
- get_process_flow()[source]#
Return the process flow.
- Returns:
The process flow.
- Return type:
BaseProcessFlow
- settings: MDAJacobi_Settings#
The settings of the MDA