MDA algorithms options¶
List of available algorithms: GSNewtonMDA - MDAChain - MDAGaussSeidel - MDAJacobi - MDANewtonRaphson - MDAQuasiNewton - MDARoot - MDASequential - SobieskiMDAGaussSeidel - SobieskiMDAJacobi -
GSNewtonMDA
¶
Description¶
Perform some GaussSeidel iterations and then NewtonRaphson iterations.
Options¶
grammar_type,
str
- the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPElinear_solver,
str
- type of linear solver to be used to solve the Newton problemlinear_solver_tolerance,
float
- Tolerance of the linear solver in the adjoint equationmax_mda_iter,
int
- maximum number of iterationsmax_mda_iter_gs,
int
- maximum number of iterations of the GaussSeidel solvername,
str
- namenorm0,
float
- reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0<tolerancerelax_factor,
float
- relaxation factortolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_lu_fact,
bool
- if True, when using adjoint/forward differenciation, store a LU factorization of the matrix to solve faster multiple RHS problemwarm_start,
bool
- if True, the second iteration and ongoing start from the previous coupling solution
MDAChain
¶
Description¶
The MDAChain computes a chain of subMDAs and simple evaluations.
The execution sequence is provided by the
DependencyGraph
class.
Options¶
chain_linearize,
bool
- linearize the chain of execution, if True Otherwise, linearize the oveall MDA with base class method Last option is preferred to minimize computations in adjoint mode in direct mode, chain_linearize may be cheapermax_mda_iter,
int
- maximum number of iterations for sub MDAsn_processes,
int
- number of processes for parallel runname,
str
- name of selfnorm0,
float
- reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0<tolerancesub_mda_class,
str
- the class to instantiate for sub MDAstolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_lu_fact,
bool
- if True, when using adjoint/forward differenciation, store a LU factorization of the matrix to solve faster multiple RHS problem
MDAGaussSeidel
¶
Description¶
Perform a MDA analysis using a Gauss-Seidel algorithm, an iterative technique to solve the linear system:
\[Ax = b\]by decomposing the matrix \(A\) into the sum of a lower triangular matrix \(L_*\) and a strictly upper triangular matrix \(U\).
The new iterate is given by:
\[x_{k+1} = L_*^{-1}(b-Ux_k)\]
Options¶
grammar_type,
str
- the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPElinear_solver_tolerance,
float
- Tolerance of the linear solver in the adjoint equationmax_mda_iter,
int
- maximum number of iterationsname,
str
- the name of the chainnorm0,
float
- reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0<tolerancetolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_lu_fact,
bool
- if True, when using adjoint/forward differenciation, store a LU factorization of the matrix to solve faster multiple RHS problemwarm_start,
bool
- if True, the second iteration and ongoing start from the previous coupling solution
MDAJacobi
¶
Description¶
Perform a MDA analysis using a Jacobi algorithm, an iterative technique to solve the linear system:
\[Ax = b\]by decomposing the matrix \(A\) into the sum of a diagonal matrix \(D\) and the reminder \(R\).
The new iterate is given by:
\[x_{k+1} = D^{-1}(b-Rx_k)\]
Options¶
acceleration,
str
- type of acceleration to be used to extrapolate the residuals and save CPU time by reusing the information from the last iterations, either None, or m2d, or secant, m2d is faster but uses the 2 last iterationslinear_solver_tolerance,
float
- Tolerance of the linear solver in the adjoint equationmax_mda_iter,
int
- maximum number of iterationsn_processes,
int
- maximum number of processors on which to runname,
str
- the name of the chainnorm0,
float
- reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0<tolerancetolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_lu_fact,
bool
- if True, when using adjoint/forward differenciation, store a LU factorization of the matrix to solve faster multiple RHS problemuse_threading,
bool
- use multithreading for parallel executions otherwise use multiprocessingwarm_start,
bool
- if True, the second iteration and ongoing start from the previous coupling solution
MDANewtonRaphson
¶
Description¶
Newton solver for MDA.
The Newton-Raphson method is parameterized by a relaxation factor \(\alpha \in (0, 1]\) to limit the length of the steps taken along the Newton direction. The new iterate is given by:
\[x_{k+1} = x_k - \alpha f'(x_k)^{-1} f(x_k)\]
Options¶
grammar_type,
str
- the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPElinear_solver,
str
- linear solver used to compute the Newton steplinear_solver_tolerance,
float
- Tolerance of the linear solver in the adjoint equationmax_mda_iter,
int
- maximum number of iterationsname,
str
- namenorm0,
float
- reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0<tolerancerelax_factor,
float
- relaxation factor in the Newton step (default 1.)tolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_lu_fact,
bool
- if True, when using adjoint/forward differenciation, store a LU factorization of the matrix to solve faster multiple RHS problemwarm_start,
bool
- if True, the second iteration and ongoing start from the previous coupling solution
MDAQuasiNewton
¶
Description¶
Quasi-Newton solver for MDA.
Quasi-Newton methods include numerous variants ( Broyden, Levenberg-Marquardt, …). The name of the variant should be provided as a parameter
method
of the class.The new iterate is given by:
\[x_{k+1} = x_k - \rho_k B_k f(x_k)\]where \(\rho_k\) is a coefficient chosen in order to minimize the convergence and \(B_k\) is an approximation of the inverse of the Jacobian \(Df(x_k)^{-1}\).
Options¶
grammar_type,
str
- the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPElinear_solver_tolerance,
float
- Tolerance of the linear solver in the adjoint equationmax_mda_iter,
int
- maximum number of iterationsmethod,
str
- method name in scipy root finding, among self.QUASI_NEWTON_METHODSname,
str
- namenorm0,
float
- reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0<tolerancetolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_gradient,
bool
- if True, used the analytic gradient of the disciplineuse_lu_fact,
bool
- if True, when using adjoint/forward differenciation, store a LU factorization of the matrix to solve faster multiple RHS problemwarm_start,
bool
- if True, the second iteration and ongoing start from the previous coupling solution
MDARoot
¶
Description¶
Abstract class implementing MDAs based on (Quasi-)Newton methods.
Options¶
grammar_type,
str
- the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPElinear_solver_tolerance,
float
- Tolerance of the linear solver in the adjoint equationmax_mda_iter,
int
- maximum number of iterationsname,
str
- the name of the chainnorm0,
Unknown
-tolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_lu_fact,
bool
- if True, when using adjoint/forward differenciation, store a LU factorization of the matrix to solve faster multiple RHS problemwarm_start,
bool
- if True, the second iteration and ongoing start from the previous coupling solution
MDASequential
¶
Description¶
Perform a MDA defined as a sequence of elementary MDAs.
Options¶
grammar_type,
str
- the type of grammar to use for IO declaration either JSON_GRAMMAR_TYPE or SIMPLE_GRAMMAR_TYPElinear_solver_tolerance,
float
- Tolerance of the linear solver in the adjoint equationmax_mda_iter,
int
- maximum number of iterationsname,
str
- namenorm0,
float
- reference value of the norm of the residual to compute the decrease stop criteria. Iterations stops when norm(residual)/norm0<tolerancetolerance,
float
- tolerance of the iterative direct coupling solver, norm of the current residuals divided by initial residuals norm shall be lower than the tolerance to stop iteratinguse_lu_fact,
bool
- use LU factorizationwarm_start,
bool
- if True, the second iteration and ongoing start from the previous coupling solution
SobieskiMDAGaussSeidel
¶
Description¶
- Chains Sobieski disciplines to perform and MDA by Gauss Seidel algorithm
Loops over Sobieski wrappers
Options¶
dtype,
str
- data array type, either “float64” or “complex128”.
SobieskiMDAJacobi
¶
Description¶
- Chains Sobieski disciplines to perform and MDA by Jacobi algorithm
Loops over Sobieski wrappers
Options¶
dtype,
str
- data array type, either “float64” or “complex128”.n_processes,
integer
- maximum number of processors on which to run