# T-Splines for Isogeometric Analysis of the Large Deformation of Elastoplastic Kirchhoff-Love Shells
## 3 Formulations for the Large Deformation of Elastoplastic Kirchhoff-Love Shells
### Arc-Length Method
\begin{split} a&=\mathbf{t}^{\mathsf{F}}\cdot \mathbf{t}^{\mathsf{F}}\\ &=\mathbf{u}^{\mathsf{F}}\cdot\mathbf{u}^{\mathsf{F}}+1\\ b&=2\mathbf{t}^{\mathsf{F}}\cdot(\blacktriangle \mathbf{t}_{j}+\mathbf{t}^{\mathsf{R}})\\ &=2\mathbf{u}^{\mathsf{F}}\cdot(\blacktriangle\mathbf{u}_{j}+ \mathbf{u}^{\mathsf{R}})+2\blacktriangle\lambda_{j}\\ c&=(\blacktriangle\mathbf{t}_{j}+\mathbf{t}^{ \mathsf{R}})\cdot(\blacktriangle\mathbf{t}_{j}+\mathbf{t}^{\mathsf{R}})-L^{2} \\ &=(\blacktriangle\mathbf{u}_{j}+\mathbf{u}^{\mathsf{R}})\cdot( \blacktriangle\mathbf{u}_{j}+\mathbf{u}^{\mathsf{R}})+\blacktriangle\lambda_{j }^{2}-L^{2}.\end{split}  \tag{51}\]  
For \(j=0\), with \(\blacktriangle\mathbf{u}_{0}=0\), \(\blacktriangle\lambda_{0}=0\), and \(\mathbf{u}_{0}^{\mathsf{R}}=0\), we acquire a predictor root  
\[\Delta\lambda_{1}=\pm\frac{L}{\sqrt{\mathbf{u}^{\mathsf{F}}\cdot\mathbf{u}^{ \mathsf{F}}+1}} \tag{52}\]  
Because Equation (52) has two solutions, we need to confirm a better equilibrium path progression:  
\[\Delta\lambda_{1}= \begin{cases}\frac{L}{\sqrt{\mathbf{u}^{\mathsf{F}}\cdot \mathbf{u}^{\mathsf{F}}+1}}&\text{if }\mathbf{u}^{\mathsf{F}}\cdot\blacktriangle \mathbf{u}+\blacktriangle\lambda\geqslant 0,\\ -\frac{L}{\sqrt{\mathbf{u}^{\mathsf{F}}\cdot\mathbf{u}^{\mathsf{F}}+1}}&\text{ otherwise}\end{cases}  \tag{53}\]  
where \(\blacktriangle\mathbf{u}\) and \(\blacktriangle\lambda\) are computed from the last convergence step. In the subsequent iterative corrections, \(\Delta\lambda_{j+1}\) can be given by  
\[\Delta\lambda_{j+1}=-\frac{b}{2a}\pm\sqrt{\left(\frac{b}{2a}\right)^{2}-\frac {c}{a}}=\left\{ \begin{array}{l}\Delta\lambda_{\alpha}\\ \Delta\lambda_{\beta}\end{array} \right.. \tag{54}\]  
The corrector root can be selected by  
\[\Delta\lambda_{j+1}=\left\{ \begin{array}{l}\Delta\lambda_{\alpha}\text{ if }t\Delta\lambda_{\alpha}>t\Delta\lambda_{\beta}\\ \Delta\lambda_{\beta}\text{ otherwise}\end{array} \right.\text{, with }t=\mathbf{u}^{ \mathsf{F}}\cdot\blacktriangle\mathbf{u}_{j}+\blacktriangle\lambda_{j}. \tag{55}\]  
The complete algorithm of the arc-length method is summarized in Algorithm 4. ```
0: The variables from the latest convergence point:\(\mathbf{u}_{O}\), \(\lambda_{O}\), \(\blacktriangle\mathbf{u}\), \(\blacktriangle\lambda\)
0: The next convergence point, updated increments: \(\blacktriangle\mathbf{u}\), \(\blacktriangle\lambda\)
1:\(j=0\)
2:while\(\|\mathbf{R}(\mathbf{u},\lambda)\|\geqslant\text{tolerance}\)do
3: Compute load increment:
4:if\(j=0\)then
5: compute \(\Delta\lambda_{1}\) by predictor step
6:else
7: compute \(\Delta\lambda_{j+1}\) by corrector step
8:endif
9: Compute displacement increments:
10:\(\Delta\mathbf{u}=\mathbf{u}^{\mathsf{R}}+\Delta\lambda\cdot\mathbf{u}^{ \mathsf{F}}\)
11: Update variables:
12:\(\mathbf{u}_{j+1}=\mathbf{u}_{j}+\Delta\mathbf{u}\), \(\lambda_{j+1}=\lambda_{j}+\Delta\lambda\). 13:\(\mathbf{R}(\mathbf{u},\lambda)\) and \(\mathbf{K}^{\mathsf{u}}\) are updated by \(\mathbf{u}_{j+1}\) and \(\lambda_{j+1}\)
14:\(j=j+1\)
15:endwhile
```  
**Algorithm 4** The algorithm of arc-length method.