## 1 Introduction
### Fatigue Damage Accumulation Algorithm Based on Cyclic Load Block  
Corrosion fatigue damage evolution of cables is a typical nonlinear problem. The existence of multiple coupling relations greatly increases the difficulty of solving the problem. Therefore, to consider the solution difficulty and accuracy, the analytical process proposed here is also based on the evolution model of steel wire corrosion fatigue damage, and the deterioration process of cables under fatigue load is reflected through the change of damage parameters. In the simulation of the cable corrosion fatigue deterioration process, the corrosion fatigue damage of steel wire is considered to belong to elastic damage. In the user subroutine, the constitutive relation of the steel wire damage zone can be expressed as Formula (7) [46]:  
\[\sigma_{ij}(x,N)=(1-D(x,N))S_{ijkl}\epsilon_{ij}(x,N) \tag{7}\]  
where \(\sigma_{ij}(x,N)\) is the Cauchy stress tensor, \(\epsilon_{ij}(x,N)\) is the strain tensor, \(D(x,N)\) is the damage variable, \(x\) is the spatial position, \(N\) is the current fatigue load times, \(S_{ijkl}\) is the initial elastic stiffness tensor, specifically expressed as Formula (8). \[S_{ijkl}=\frac{E\
u}{(1+\
u)(1-2\
u)}\delta_{ij}\delta_{kl}+\frac{E}{2(1+\
u)} (\delta_{ik}\delta_{jl}+\delta_{il}\delta_{jk}) \tag{8}\]  
where \(\delta\) is the Kronecker function, specifically expressed as \(\delta_{ij}= \begin{cases}0&ifi\
eq j\\ 1&ifi=j\end{cases} \)\(E\) is the modulus of elasticity; \(v\) is the Poisson ratio. In the process of cable damage evolution, the damage caused by a single load is very small, and it usually takes enough multiple loads to make obvious damage changes in the wire inside the cable. When simulating this process, if each cyclic load was considered separately, the computational conditions required would be out of limit, unfeasible, and unnecessary. In order to reduce the calculation cost, the cyclic load block technique was usually used to simulate the evolution process of fatigue damage [47; 48]. Cyclic load block technology was also adopted in the cable corrosion fatigue damage accumulation algorithm developed here; that is, multiple cyclic loads are encapsulated into one load step to accelerate the entire corrosion fatigue damage evolution process. Within each cyclic load block, the damage value of the material will remain unchanged. When analyzing the next cyclic load block, the damage value of the material will be updated according to the state at the end of the loading of the previous cyclic load block. That is, the forward Euler integral method is used to calculate the material damage increment, which is specifically expressed as Formula (9) [49]:  
\[D(x,N)\big{|}_{N=N_{i}+1}=D(x,N)\big{|}_{N=N_{i}+\Delta N}=\left.D(x,N)\right| _{N=N_{i}}+\frac{\partial D(x,N)}{\partial N}\bigg{|}_{N=N_{i}}\Delta N \tag{9}\]  
where \(N_{i}\) is the fatigue addition times of the \(i\) cycle loading block, \(\Delta N\) is the number of fatigue loads in the cyclic load block. Considering the balance between computational efficiency and computational accuracy, the semi-decoupling method was adopted here to calculate corrosion fatigue damage; that is, the damage is only introduced into the constitutive relation, and the influence of damage is not considered in the equilibrium equation. This method requires less computation than the full coupling method but has higher computational accuracy than the full decoupling method [50]. As the damage calculation is a nonlinear problem, it is necessary to satisfy the nonlinear stress-strain relationship by iteration during the calculation of each cyclic load block. In order to illustrate the stress updating process in each damage iteration calculation, \(n\) is assumed to be the current load increment step, and then the strain increment can be expressed as Formula (10):  
\[\Delta\varepsilon_{ij}^{n+1}(x,N_{i})=\varepsilon_{ij}^{n+1}(x,N_{i})-\varepsilon _{ij}^{n}(x,N_{i}) \tag{10}\]  
For linearly elastic materials, the Jacobian matrix is actually the stress-strain relation.