... | ... | @@ -105,52 +105,8 @@ Another stopping criterion can be defined on the $`p^\text{th}`$ increment $`\ma |
|
|
\frac{||\mathbf{\delta x}_p||}{||\mathbf{x}_p||} < \varepsilon.
|
|
|
```
|
|
|
|
|
|
<!--
|
|
|
<!—-
|
|
|
|
|
|
### Newton-Raphson method
|
|
|
|
|
|
Usually, the Newton-Raphson method (NR-method) is used. In that case, a new approximation $\vec{x}_i=\vec{x}_{i-1}+\vec{\delta x}_i$ is obtained through the linearization of the residual vector $\vec{r}(\vec{x}_i)$ around the previous approximated value $\vec{x}_{i-1}$:
|
|
|
\begin{equation}
|
|
|
\vec{r}(\vec{x}_i)=\vec{r}(\vec{x}_{i-1}+\vec{\delta x}_i)=0,
|
|
|
\end{equation}
|
|
|
\begin{equation}
|
|
|
\vec{r}(\vec{x}_{i-1})+(\frac{\partial \vec{r}}{\partial \vec{x}})_{i-1} \vec{\delta x}_i + o(\vec{\delta \vec{x}}_i^2)= 0.
|
|
|
\end{equation}
|
|
|
By neglecting the higher-order terms $o(\vec{\delta \vec{x}}_i^2)$, a system of linear algebraic equations in $\vec{\delta x}_i$ is deduced:
|
|
|
\begin{equation}
|
|
|
(\frac{\partial \vec{r}}{\partial \vec{x}})_{i-1} \vec{\delta x}_i = -\vec{r}(\vec{x}_{i-1}).
|
|
|
\label{NR}
|
|
|
\end{equation}
|
|
|
|
|
|
Remark: The derivative of an $m \times 1$-column vector $\vec{y}$ with respect to an $n \times 1$-column vector $\vec{x}$ is an $m \times n$-matrix whose $(j,k)^\text{th}$ element is given by:
|
|
|
\begin{equation*}
|
|
|
(\frac{\partial \vec{y}}{\partial \vec{x}})_{j,k}=\frac{\partial \vec{y}_j}{\partial \vec{x}_k}.
|
|
|
\end{equation*}
|
|
|
|
|
|
For the system written in \eqref{Sys}, with the right-hand side $\vec{b}$ assumed known, the formulation \eqref{NR} becomes:
|
|
|
\begin{equation}
|
|
|
(\frac{\partial \big( \mat{A}(\vec{x}) \; \vec{x} \big)}{\partial \vec{x}})_{i-1} \vec{\delta x}_i = \vec{b}-\mat{A}(\vec{x}_{i-1}) \; \vec{x}_{i-1}.
|
|
|
\label{SysNR}
|
|
|
\end{equation}
|
|
|
|
|
|
Each NR-iteration provides an unique increment solution $\vec{\delta x}_i$ which depends on values taken from the previous iteration step $i-1$. Nevertheless,
|
|
|
\begin{equation}
|
|
|
\vec{x}_i=\vec{x}_{i-1}+\gamma_i \; \vec{\delta x}_i,
|
|
|
\end{equation}
|
|
|
with $\gamma_i$, the so-called ''relaxation factor'', which should be chosen judiciously (typically between $0$ and $1$).
|
|
|
|
|
|
The matrix which appears in the system \eqref{SysNR} is called the ''Jacobian matrix'' (or ''Tangent stiffness matrix'') of the system and is noted $\Ja$:
|
|
|
\begin{equation}
|
|
|
\Ja=(\frac{\partial \big( \mat{A}(\vec{x}) \; \vec{x} \big)}{\partial \vec{x}}).
|
|
|
\label{Jac}
|
|
|
\end{equation}
|
|
|
|
|
|
The NR-method can be summarized by the following iterative loop:
|
|
|
$\vec{x}_0=\vec{0}$; // Initialization
|
|
|
for $i=1,2,3,...$ {
|
|
|
$\vec{\delta x}_i = \Big( \Ja(\vec{x}_{i-1}) \Big)^{-1} \big( \vec{b}-\mat{A}(\vec{x}_{i-1}) \; \vec{x}_{i-1} \big)$; // Find the new $\vec{\delta x}$
|
|
|
$\vec{x}_i=\vec{x}_{i-1}+\gamma_i \; \vec{\delta x}_i$; // Update the value of $\vec{x}$
|
|
|
}
|
|
|
|
|
|
== Implementation of nonlinear problems in GetDP ==
|
|
|
|
... | ... | |