Skip to main content
Log in

Micromechanical analysis of hyperelastic composites with localized damage using a new low-memory Broyden-step-based algorithm

  • Original
  • Published:
Archive of Applied Mechanics Aims and scope Submit manuscript

Abstract

A multiscale (micro-to-macro) analysis is proposed for the prediction of the finite-strain behavior of composites with hyperelastic constituents and embedded localized damage. The composites are assumed to possess periodic microstructure and be subjected to a remote field. At the microscale, finite-strain micromechanical analysis based on the homogenization technique for the (intact) composite is employed for the prediction of the effective deformation. At the macroscale, a procedure, based on the representative cell method and the associated higher-order theory, is developed for the determination of the elastic field in the damaged composite. The periodic composite is discretized into identical cells and then reduced to the problem of a single cell by application of the discrete Fourier transform. The resulting governing equations, interfacial and boundary conditions in the Fourier transform domain are solved by employing the higher-order theory in conjunction with an iterative procedure to treat the effects of damage and material nonlinearity. The initial conditions for the iterative solution are obtained using the weakly nonlinear material limit and a natural fixed-point iteration. A locally convergent low-memory Quasi-Newton solver is then employed. A new algorithm for the implementation of the solver is proposed, which allows storing in the memory directly the vector function history sequence, which may be advantageous for convergence control based on specific components of the objective vector function. The strong-form Fourier transform-based approach employed here, in conjunction with the new solver, enables to extend the application of the method to nonlinear materials and may have computational efficiency comparable or possibly advantageous to that of standard approaches.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

References

  1. Aboudi, J.: Field distributions in cracked periodically layered electro-magneto-thermo-elastic composites. J. Intell. Mater. Syst. Struct. 24, 381–398 (2012)

    Article  Google Scholar 

  2. Aboudi, J.: The induced stress field in cracked composites by heat flow. J. Compos. Sci. 1, 4 (2017). https://doi.org/10.3390/jcs1010004

    Article  Google Scholar 

  3. Aboudi, J.: Field distributions in piezoelectric composites with semi-infinite cracks. J. Intell. Mater. Syst. Struct. 28, 547–562 (2017)

    Article  Google Scholar 

  4. Aboudi, J.: Multiscale analysis for the prediction of the full field in electromagnetoelastic composites with semi-infinite cracks. J. Intell. Mater. Syst. Struct. 28, 1734–1750 (2017)

    Article  Google Scholar 

  5. Aboudi, J.: The electric, magnetic and elastic fields in damaged thermo-electro-magneto-elastic composites created by heat flow. J. Intell. Mater. Syst. Struct. 29, 1670–1684 (2017)

    Article  Google Scholar 

  6. Aboudi, J.: The behavior of cracked multiferroic composites: fully coupled thermo-electro-magneto-elastic analysis. J. Intell, Mater. Syst. Struct. 29, 3037–3054 (2018)

    Article  Google Scholar 

  7. Aboudi, J., Ryvkin, M.: The effect of localized damage on the behavior of composites with periodic microstructure. Int. J. Eng. Sci. 52, 41–55 (2012)

    Article  Google Scholar 

  8. Aboudi, J., Ryvkin, M.: The analysis of localized effects in composites with periodic microstructure. Philos. Trans. R. Soc. A 371, 20120373 (2013)

    Article  MathSciNet  Google Scholar 

  9. Aboudi, J., Ryvkin, M.: Dynamic overshooting in 2D periodic materials with square voids caused by sudden flaw appearance. Int. J. Solids Struct. 51, 2345–2359 (2014)

    Article  Google Scholar 

  10. Aboudi, J., Volokh, K.Y.: Failure prediction of unidirectional composites undergoing large deformations. J. Appl. Mech. 82(7), 071004 (2015)

    Article  Google Scholar 

  11. Aboudi, J., Arnold, S.M., Bednarcyk, B.A.: Micromechanics of Composite Materials: A Generalized Multiscale Analysis Approach. Elsevier, Oxford (2013)

    Google Scholar 

  12. Berinskii, I., Ryvkin, M., Aboudi, J.: Contact problem for a composite material with nacre inspired microstructure. Model. Simul. Mater. Sci. Eng. 25, 085002 (2017)

    Article  Google Scholar 

  13. Broyden, C.G.: A class of methods for solving nonlinear simultaneous equations. Math. Comput. 19(92), 577–593 (1965)

    Article  MathSciNet  Google Scholar 

  14. Chen, Y.C., Jiang, X.: Nonlinear elastic properties of particulate composites. J. Mech. Phys. Solids 41, 1177–1190 (1993)

    Article  MathSciNet  Google Scholar 

  15. Deuflhard, P.: Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms, Computational Mathematics 35. Springer, Berlin (2004)

    MATH  Google Scholar 

  16. Haj-Ali, R., Aboudi, J.: The parametric HFGMC. In: Meguid, S.A., Weng, G.J. (eds.) Micromechanics and Nanomechanics of Composite Solids, pp. 391–424. Springer, Cham (2018)

    Chapter  Google Scholar 

  17. Malvern, L.E.: Introduction to the Mechanics of Continuous Media. Prentice Hall, Englewood Cliffs (1969)

    Google Scholar 

  18. Murnaghan, F.D.: Finite Deformation of an Elastic Solid. Dover, New York (1967)

    Google Scholar 

  19. Ortega, J.M., Rheinboldt, W.C.: Iterative Solution of Nonlinear Equations in Several Variables, Computer Science and Applied Mathematics, vol. I–XV, pp. 1–572. Academic Press, New-York and London (1970)

    Book  Google Scholar 

  20. Rall, L.B.: Computational Solution of Nonlinear Operational Equations. Wiley, New York (1968)

    Google Scholar 

  21. Rheinboldt, W.C.: Methods for Solving Systems of Nonlinear Equations. Regional Conference Series in Application Mathematics, vol. 70. SIAM Publications, Philadelphia (1998)

    Book  Google Scholar 

  22. Ryvkin, M., Aboudi, J.: Stress redistribution due to cracking in periodically layered composites. Eng. Fract. Mech. 93, 225–238 (2012)

    Article  Google Scholar 

  23. Ryvkin, M., Aboudi, J.: Transient problem for semi-infinite crack in periodically voided materials. Eng. Fract. Mech. 162, 218–231 (2016)

    Article  Google Scholar 

  24. Ryvkin, M., Nuller, B.: Solution of quasi-periodic fracture problems by the representative cell method. Comput. Mech. 20, 145–149 (1997)

    Article  Google Scholar 

  25. Sanchez-Palencia, E., Zaoui, A. (eds.): Homogenization Techniques for Composite Materials. Springer, Berlin (1987)

    Google Scholar 

  26. Sussman, T., Bathe, K.J.: A finite element formulation for nonlinear incompressible elastic and inelastic analysis. Comput. Struct. 26, 357–409 (1987)

    Article  Google Scholar 

  27. van de Rotten, B.A., Verduyn Lunel, S.M.: A memory-efficient Broyden method to compute fixed points of non-linear maps arising in periodically forced processes. IMA J. Appl. Math. 80(3), 585–607 (2015)

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nathan Perchikov.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix A: Derivation of the Quasi-Newton step

The exact Newton step uses current spatial directions, whereas the Quasi-Newton method uses the history of vectors tangential to the solution trajectory. For high-dimensional spaces and good initial guesses, the Quasi-Newton method is much cheaper (and also non-singular). Of course, using a smaller number (than d) of linearly independent yet not orthogonal vectors one can never obtain the exact Jacobian inverse, and this has an effect on the stability of the fixed-point iteration mapping. Taking the gradient of the fixed-point in Eq. (56) for the exact Newton step and employing Eq. (57), we get:

$$\begin{aligned} \begin{aligned} \left\{ \nabla [{\mathcal {G}}(\mathbf{x })]^{\top }\right\} ^{\top }=-\sum _{n=1}^{d}{\left\{ (\mathbf{f }^{\top }\mathbf{v }_n)(\nabla \mathbf{u }^{\top }_n)^{\top }+(\mathbf{u }_n\mathbf{f }^{\top })(\nabla \mathbf{v }_n^{\top })^{\top } \right\} } \end{aligned} \end{aligned}$$
(A.1)

For \(\Vert \mathbf{f }\Vert \) sufficiently small already at the starting point, the mapping in Eq. (56) will stay contracting. On the other hand, if instead of using local orthogonal spatial finite-difference vectors, one uses a set of non-orthogonal non-local steps and function differences tangential to the solution trajectory, then the associated Quasi-Newton matrix could be expressed as:

$$\begin{aligned} \tilde{\mathbf{B }}_k=\tilde{\mathbf{B }}_{n_0}+\sum _{n=n_0}^{k-1} \tilde{\mathbf{u }}_n\tilde{\mathbf{v }}_n^{\top } \end{aligned}$$
(A.2)

Here it is assumed that an approximation of the inverse Jacobian exists at a given state, and then is updated using accumulated information, which is essentially the update in the function vector the root of which is sought, and as one would expect the matrix is updated by a new information encompassed in a vector in the only possible way, namely the addition of the dyadic product, or an outer product between two vectors, one of which depends on \(\mathbf{f }\) and the other on previous information and is only needed for constructing a matrix. The current Quasi-Newton matrix then comprises a number of such dyadic products—this number should not be too large, since the approximation of the Jacobian should still be at least somewhat local.

If at a given iteration this decomposition is used, then at the next iteration, naturally a single dyadic product is added. This is a basic proposition of the explicit Quasi-Newton approach, which is employed here. Consequently, the update formula for the matrix approximating the inverse Jacobian would be:

$$\begin{aligned} \tilde{\mathbf{B }}_{k+1}=\tilde{\mathbf{B }}_{k}+ \tilde{\mathbf{u }}_k\tilde{\mathbf{v }}_k^{\top } \end{aligned}$$
(A.3)

Taking the gradient of the Quasi-Newton step then yields:

$$\begin{aligned} \begin{aligned} \left\{ \nabla [\tilde{{\mathcal {G}}}(\mathbf{x })]^{\top }\right\} ^{\top }= \mathbf{I }-\tilde{\mathbf{B }}_{k}(\nabla \mathbf{f }^{\top })^{\top } -\sum _{n=n_0}^{n_0+M}{\left\{ (\mathbf{f }^{\top }\tilde{\mathbf{v }}_n)(\nabla \tilde{\mathbf{u }}_n^{\top })^{\top }+(\tilde{\mathbf{u }}_n\mathbf{f }^{\top })(\nabla \tilde{\mathbf{v }}_n^{\top })^{\top } \right\} } \end{aligned} \end{aligned}$$
(A.4)

Next we define the step and the function change (decrease) as

$$\begin{aligned} \mathbf{s }_k\triangleq \mathbf{x }_k-\mathbf{x }_{k-1}, \ \mathbf{y }_k\triangleq \mathbf{f }_k-\mathbf{f }_{k-1} \end{aligned}$$
(A.5)

Multiplying Eq. (A.4) by the step and taking a 2-norm of the equation, and recalling Minkowski’s inequality for \(p=2\) (or the triangle inequality for a norm, which results from the Cauchy–Schwarz inequality), we get the following estimate for the Jacobian of the mapping:

$$\begin{aligned} \begin{aligned} \left\| \left\{ \nabla [\tilde{{\mathcal {G}}}(\mathbf{x })]^{\top }\right\} ^{\top }\mathbf{s }\right\| _2 \le \left\| \mathbf{s }-\tilde{\mathbf{B }}(\nabla \mathbf{f }^{\top })^{\top }\mathbf{s }\right\| _2+ \left\| \sum _{n=n_0}^{n_0+M}{\left\{ (\mathbf{f }^{\top }\tilde{\mathbf{v }}_n)(\nabla \tilde{\mathbf{u }}_n^{\top })^{\top }+(\tilde{\mathbf{u }}_n\mathbf{f }^{\top })(\nabla \tilde{\mathbf{v }}_n^{\top })^{\top } \right\} }\mathbf{s } \right\| _2 \end{aligned} \end{aligned}$$
(A.6)

Next, under the reasonable assumption that the nonlinear system to be solved is smooth, one can acknowledge that at the solution, denoted by a star subscript, one has

$$\begin{aligned} (\nabla \mathbf{f }^{\top })^{\top }_*\mathbf{s }_*=\mathbf{y }_* \ , \ \left\{ \nabla [\tilde{{\mathcal {G}}}(\mathbf{x })]^{\top }\right\} ^{\top }_*\mathbf{s }_*=\tilde{{\mathcal {G}}}(\mathbf{x }_*)-\mathbf{x }_* \end{aligned}$$
(A.7)

which yields the relation

$$\begin{aligned} \left\| \tilde{{\mathcal {G}}}(\mathbf{x }_*)-\mathbf{x }_*\right\| _2\le \left\| \mathbf{s }_*-\tilde{\mathbf{B }}_{*}\mathbf{y }_*\right\| _2 \end{aligned}$$
(A.8)

A natural definition for a stable fixed-point iteration mapping is one stating that at the fixed-point, the deviation vector from the fixed-point that the application of the mapping produces would be zero. A good stability condition is thus

$$\begin{aligned} \tilde{{\mathcal {G}}}(\mathbf{x }_*)-\mathbf{x }_*=\mathbf{s }_*-\tilde{\mathbf{B }}_{*}\mathbf{y }_*=0\Rightarrow \tilde{\mathbf{B }}_{*}\mathbf{y }_*=\mathbf{s }_* \end{aligned}$$
(A.9)

The straightforward way to satisfy this stability condition using only current and previous information without having the exact inverse Jacobian at hand, is to require that the relation holds not only at the solution but rather always. This would be an unnecessary but a sufficient condition. Moreover, this condition would give a constraint on the Quasi-Newton matrix at every iteration. This condition has the following form:

$$\begin{aligned} \tilde{\mathbf{B }}_k\mathbf{y }_k=\mathbf{s }_k \, \ \forall \ \ k >n_0 \end{aligned}$$
(A.10)

Clearly, another way of satisfying Eq. (A.9) is by using the exact Newton matrix \(\mathbf{B }=(\nabla \mathbf{f }^{\top })^{-\top }\). An interesting feature of the exact Newton step, as can be learned from Eq. (A.1), is that for linear systems, convergence is guaranteed for any starting point. For Quasi-Newton methods, this is not true.

The condition in Eq. (A.10) guarantees convergence for a sufficiently good starting point and constraints the Quasi-Newton matrix. Substituting Eqs. (A.3) into (A.10), and recalling Eqs. (56) and (A.5), one obtains a class of update formulas for the Quasi-Newton matrix:

$$\begin{aligned} \begin{aligned} \tilde{\mathbf{B }}_{k}=\tilde{\mathbf{B }}_{k-1}+\frac{\mathbf{s }_k-\tilde{\mathbf{B }}_{k-1}\mathbf{y }_k}{\mathbf{y }_{k}^{\top }{\tilde{\mathbf{v }}_{k-1}}}\tilde{\mathbf{v }}_{k-1}^{\top }= \tilde{\mathbf{B }}_{k-1}\left( \mathbf{I }-\frac{\mathbf{f }_{k}{\tilde{\mathbf{v }}_{k-1}^{\top }}}{\mathbf{y }_{k}^{\top }{\tilde{\mathbf{v }}_{k-1}}}\right) ,\ \forall \ \ k > n_0 \end{aligned} \end{aligned}$$
(A.11)

where \(\mathbf{I }\) is the identity matrix of dimensions \(d\times d\).

This is just the Quasi-Newton result, based on the fact that the matrix is not the exact inverse Jacobian and that it is constructed only from the solution history without performing local differentiation in various linearly independent directions.

The Quasi-Newton idea is to construct the approximation for the inverse Jacobian using information from iterations rather than dimension directions. The number of iterations used for this purpose should be smaller than the dimensionality of the problem for memory efficiency, however large enough for a good approximation of the matrix and consequently good convergence rate.

Appendix B: The bad and the good Broyden methods

In order to be able to collect information from many solution steps for updating the Quasi-Newton matrix and using it for constructing the steps themselves, it is essential that the matrix will not change too sharply during the iterations, or else it would not have ‘time’ to act in its ‘good’ form. Clearly a single step does not provide sufficient information for approximation of the inverse Jacobian, so one would not want the matrix to change too much during a single iteration, since then it would not have a plateau, where it already approximates the inverse Jacobian well enough and can act in this capacity for significant amount of time to provide high convergence rate.

Therefore, it would be advisable to add an additional constraint for determining the update of the Quasi-Newton matrix. This constraint will make sure that the change in the matrix during one iteration is small enough. Since Eq. (A.11) has a free vector, it would be natural to define the aforementioned constraint as a minimization problem of (some measure of) the change of the Quasi-Newton matrix during one iteration with respect to the free vector \(\tilde{\mathbf{v }}_{k-1}\).

Now, if we combine Eqs. (56), (A.5) and (A.10), we get the following relation:.

$$\begin{aligned} \begin{aligned} \mathbf{s }_k=\mathbf{x }_{k}-\mathbf{x }_{k-1}=-\tilde{\mathbf{B }}_{k-1}\mathbf{f }_{k-1}= \tilde{\mathbf{B }}_{k}\mathbf{y }_k= \tilde{\mathbf{B }}_{k}\mathbf{f }_{k}-\tilde{\mathbf{B }}_{k}\mathbf{f }_{k-1}\Rightarrow \left|\left( \tilde{\mathbf{B }}_{k} -\tilde{\mathbf{B }}_{k-1}\right) \mathbf{f }_{k-1} \right|=|\mathbf{s }_{k+1}| \end{aligned} \end{aligned}$$
(B.1)

This can be further reduced to

$$\begin{aligned} \left\| \tilde{\mathbf{B }}_{k}-\tilde{\mathbf{B }}_{k-1} \right\| _{F}\ge \frac{|\mathbf{s }_{k+1}|}{|\mathbf{f }_{k-1}|} \ , \forall \ k >n_0 \end{aligned}$$
(B.2)

where \(\Vert \cdot \Vert _{F}\) is the Frobenius norm. On the other hand, if one first multiplies the last relation in Eq. (B.1) by \(\tilde{\mathbf{B }}_{k}^{-1}\), and then rearranges, one obtains the following equation:

$$\begin{aligned} \left\| \tilde{\mathbf{B }}_{k}^{-1}-\tilde{\mathbf{B }}_{k-1}^{-1} \right\| _{F}\ge \frac{|\mathbf{f }_{k}|}{|\mathbf{s }_{k}|} \ , \ \ \forall \ k >n_0 \end{aligned}$$
(B.3)

Clearly the Frobenius norms in Eqs. (B.2) and (B.3) are feasible measures of how small the change per iteration is in the Quasi-Newton matrix. Obviously we cannot make these norms arbitrarily small only by varying \(\mathbf{v }_{k-1}\). The next best thing we can do, however, is to minimize one of the aforementioned norms. Now, since Eqs. (A.11), (B.2) and (B.3) should all hold for a convex set of k values, the optimization problem we would have in hand is a discrete variational minimization problem. The crucial idea is that we do not just set \(\mathbf{v }_{k-1}\) to obtain the optimum value for the left-hand side of Eqs. (B.2), (B.3) for some value of k, but rather is that we need to find all values \(\mathbf{v }_{m}\) for \(n_0\le m\le k-1\), such that either \(\left\| \tilde{\mathbf{B }}_{m+1}-\tilde{\mathbf{B }}_{m} \right\| _{F}\) or \(\left\| \tilde{\mathbf{B }}_{m+1}^{-1}-\tilde{\mathbf{B }}_{m}^{-1} \right\| _{F}\) would be minimal for \(n_0\le m\le k-1\).

Now, only due to the fact that this minimization is a (discrete) variational one, and it would hold for the entire history, Eqs. (B.2) and (B.3) are valid. Had we only optimized for the current \(\mathbf{v }_{k-1}\), we could not have expected the minimization of the left-hand side in the aforementioned equations to affect the right-hand side, which locally does not depend on \(\mathbf{v }_{k-1}\). However, the solution to this seeming contradiction is indeed the understanding that the minimization is a (discrete) variational one, affecting the entire discrete solution trajectory (sequence), and thus, the aforementioned right-hand sides are affected by \(\mathbf{v }_{m<k-1}\), and no contradiction arises. In practice, this understanding would be manifested in explicit update formulas for \(\mathbf{v }_{m}\), active for all the range \(n_0\le m\le k-1\). We will next perform the aforementioned (discrete) variational minimization of the two Frobenius norms in question, analytically.

Substituting Eq. (A.11) into the left-hand side of Eq. (B.2), squaring, recalling that \(\Vert \mathbf{M }\Vert _F^2=\text {tr}(\mathbf{M }^{\top }\mathbf{M })\), and taking the variation, we get:

$$\begin{aligned} \begin{aligned} {\mathcal {N}}_1\triangleq \left\| \tilde{\mathbf{B }}_{k}-\tilde{\mathbf{B }}_{k-1} \right\| _{F}^2=\left| \mathbf{s }_k-\tilde{\mathbf{B }}_{k-1}\mathbf{y }_k\right| ^2\frac{\tilde{\mathbf{v }}_{k-1}^{\top }\tilde{\mathbf{v }}_{k-1}}{(\tilde{\mathbf{v }}_{k-1}^{\top }{\mathbf{y }_{k}})^2} \Rightarrow \delta {\mathcal {N}}_1 =2{\mathcal {N}}_1\tilde{\mathbf{v }}_{k-1}^{\top } \frac{\mathbf{y }_{k}\tilde{\mathbf{v }}_{k-1}^{\top }-\tilde{\mathbf{v }}_{k-1}\mathbf{y }_{k}^{\top }}{\tilde{\mathbf{v }}_{k-1}^{\top }{\mathbf{y }_{k}}\tilde{\mathbf{v }}_{k-1}^{\top }{\tilde{\mathbf{v }}_{k-1}}} \delta \tilde{\mathbf{v }}_{k-1} \end{aligned} \end{aligned}$$
(B.4)

Clearly, the only general root of the variation in Eq. (B.4) is \(\tilde{\mathbf{v }}_{k-1}^*=\mathbf{y }_{k}\), which corresponds to the variational extremum. The second variation at the extremum then becomes:

$$\begin{aligned} \begin{aligned} \delta ^2{\mathcal {N}}_1^* =\frac{2\left| \mathbf{s }_k-\tilde{\mathbf{B }}_{k-1}\mathbf{y }_k\right| ^2}{(\mathbf{y }_{k}^{\top }\mathbf{y }_{k})^3} \left[ (\mathbf{y }_{k}^{\top }\mathbf{y }_{k})(\delta \tilde{\mathbf{v }}_{k-1}^{\top }{\delta \tilde{\mathbf{v }}_{k-1}}) -(\mathbf{y }_{k}^{\top }\delta \tilde{\mathbf{v }}_{k-1})^2 \right] \end{aligned} \end{aligned}$$
(B.5)

which is positive (for an arbitrary small variation) due to the Cauchy–Schwarz inequality. Consequently, \(\tilde{\mathbf{v }}_{k-1}^*=\mathbf{y }_{k}\) corresponds to the minimum of the squared Frobenius norms of the single-iteration update of the Quasi-Newton matrix. A minimum of a positive function coincides with the minimum of its square. Therefore, the right-hand side of Eq. (B.2) can be minimized (as its supremum is being minimized) by the choice \(\tilde{\mathbf{v }}_{k-1}^*=\mathbf{y }_{k}\). Moreover, since only one general extremum was found and the bound for the variable vector trajectory in question is zero, which is infeasible (since Eq. (A.11) places a unity-norm constraint on \(\mathbf{v }\)), the obtained local minimum is also the global one.

Now, one notes that the minimum of \(|\mathbf{s }_{k+1}|/|\mathbf{f }_{k-1}|\), as the minimum of any quotient, generally corresponds to maximizing the denominator and minimizing the numerator. This means that the obtained choice of the Quasi-Newton matrix would maximize the norm of the nonlinear equations the root of which is sought and minimize successive steps of the solution. This is clearly a bad idea. Even for a decrease in the norm of the equations, the step would decrease more rapidly than the solution attainment. This means that the solution may converge to a point which is not a root and get stuck there. And this is even if there is a way to minimize the norm of the equations by minimizing the ratio, which is questionable. Therefore, minimizing the norm in Eq. (B.2) seems inadvisable. Indeed this approach is known as the ‘bad’ Broyden method. It is suggested in [13], although without the argumentation revealed here. Let us see what can be obtained by working with Eq. (B.3) instead.

First, Eq. (A.11) can be inverted using the Sherman–Morrison (or the Householder) formula. Substitution in Eq. (B.4), while using Eqs. (56) and (A.5), then yields:

$$\begin{aligned} \begin{aligned} \mathcal {N}_2\triangleq \left\| \tilde{\mathbf{B }}_{k}^{-1}-\tilde{\mathbf{B }}_{k-1}^{-1} \right\| _{F}^2=\left| \mathbf{f }_k\right| ^2\frac{\hat{\mathbf{v }}_{k-1}^{\top }\hat{\mathbf{v }}_{k-1}}{(\hat{\mathbf{v }}_{k-1}^{\top }{\mathbf{s }_{k}})^2} \Rightarrow \delta {\mathcal {N}}_2 =2{\mathcal {N}}_2\hat{\mathbf{v }}_{k-1}^{\top } \frac{\mathbf{s }_{k}\hat{\mathbf{v }}_{k-1}^{\top }-\hat{\mathbf{v }}_{k-1}\mathbf{s }_{k}^{\top }}{\hat{\mathbf{v }}_{k-1}^{\top }{\mathbf{s }_{k}}\hat{\mathbf{v }}_{k-1}^{\top }{\hat{\mathbf{v }}_{k-1}}} \delta \hat{\mathbf{v }}_{k-1} \end{aligned} \end{aligned}$$
(B.6)

where the independent vector trajectory (sequence) to be optimized for was replaced using the following substitution:

$$\begin{aligned} \hat{\mathbf{v }}_{k-1}\triangleq \tilde{\mathbf{B }}_{k-1}^{-\top }\tilde{\mathbf{v }}_{k-1} \end{aligned}$$
(B.7)

(the matrix multiplier with the simultaneous inversion and transposition operator on the right-hand side is constant in terms of the optimization as thus has zero variance).

As before, clearly, the only general root of the variation in Eq. (B.6) is \(\hat{\mathbf{v }}_{k-1}^{**}=\mathbf{s }_{k}\), which corresponds to the variational extremum. The second variation at the extremum then becomes:

$$\begin{aligned} \begin{aligned} \delta ^2{\mathcal {N}}_2^{**} =\frac{2\left| \mathbf{f }_k\right| ^2}{(\mathbf{s }_{k}^{\top }\mathbf{s }_{k})^3}\left[ (\mathbf{s }_{k}^{\top }\mathbf{s }_{k})(\delta \hat{\mathbf{v }}_{k-1}^{\top }{\delta \hat{\mathbf{v }}_{k-1}}) -(\mathbf{s }_{k}^{\top }\delta \hat{\mathbf{v }}_{k-1})^2 \right] \end{aligned} \end{aligned}$$
(B.8)

Again, as before, this quantity is positive (for an arbitrary small variation) due to the Cauchy–Schwarz inequality, subjected to the assumption that the Quasi-Newton step is of nonzero length.

Consequently, the choice \(\hat{\mathbf{v }}_{k-1}^{**}=\mathbf{s }_{k}\) corresponds to the minimum of the squared Frobenius norms of the single-iteration update of the Quasi-Newton matrix. A minimum of a positive function coincides with the minimum of its square. Therefore, the right-hand side of Eq. (B.3) can be minimized (as its supremum is minimized) by the choice

$$\begin{aligned} \tilde{\mathbf{v }}_{k-1}^{**}=\tilde{\mathbf{B }}_{k-1}^{\top }\mathbf{s }_{k}=-\tilde{\mathbf{B }}_{k-1}^{\top }\tilde{\mathbf{B }}_{k-1}\mathbf{f }_{k-1} \end{aligned}$$
(B.9)

(one notes that, as expected, only previous-step quantities are employed).

Moreover, for the same reasoning as before, the obtained local minimum is also the global one.

We therefore have obtained the result that the choice \(\tilde{\mathbf{v }}_{k-1}^{**}=\tilde{\mathbf{B }}_{k-1}^{\top }\mathbf{s }_{k}\ \forall \ k>n_0\), minimizes the ratio \(|\mathbf{f }_{k}|/|\mathbf{s }_{k}|\) in each step of the solution. This is exactly the condition of fastest local relative norm decrease. In other words, this is the best result one can ask for. Now the constructed Quasi-Newton matrix, which uses only solution history, guarantees both the stability of the fixed-point at the end of the solution process, and the fastest relative equations norm decrease at every iteration (after some initial iteration). One can argue that this is the best one can do for the solution of a large system of nonlinear equations when a good starting point exists, since the choice of the free vectors is done such that the norm of the equations is minimized in the next iteration and the (backward directing) step size of the next iteration is maximized—for fastest convergence (strictly speaking, the maximal-norm decrease and step increase would correspond to the infimum of the minimal value of the ratio of the former to the latter, but the key word is simultaneous decrease of the equations norm and increase of the step, for fastest approach to the solution—this is what one seeks and this is what the minimization of the ratio supplies, within the constraint of a single vector sequence to optimize for). Indeed, this result is called the ‘good’ Broyden method suggested in [13] and analyzed in more recent literature (although there the optimality of the method is not argued for the way it is done here). Anyhow, using the obtained result (the ‘good’ Broyden method), the update formula for the Quasi-Newton matrix (or the Broyden matrix) becomes:

$$\begin{aligned} \begin{aligned} \tilde{\mathbf{B }}_{k}=\tilde{\mathbf{B }}_{k-1}-\frac{\tilde{\mathbf{B }}_{k-1}\mathbf{f }_{k}{{\mathbf{f }}_{k-1}^{\top }\tilde{\mathbf{B }}_{k-1}^{\top }\tilde{\mathbf{B }}_{k-1}}}{{\mathbf{f }}_{k-1}^{\top }{\tilde{\mathbf{B }}_{k-1}^{\top }\tilde{\mathbf{B }}_{k-1}(\mathbf{f }_{k}-\mathbf{f }_{k-1}})}, \forall \ \ \ k > n_0 \end{aligned} \end{aligned}$$
(B.10)

(where one observes the addition of a vector dependent on current function evaluation juxtaposed with a vector expressed through previous-iteration quantities only). One notes that the update only requires the previous Broyden matrix and the current (and previous) function value.

Such iterative update of the Broyden matrix requires an initial estimate. One can calculate the actual Jacobian at an initial point and invert it. If, however, calculations of this sort are too expensive even for the initial point, one can use another common route, which is performing the first solution step using the original, non-convergent mapping. In terms of the Broyden matrix, this would be equivalent to setting

$$\begin{aligned} \tilde{\mathbf{B }}_{1}=-\mathbf{I } \end{aligned}$$
(B.11)

Appendix C: Derivation details for the directly function-value storing low-memory good Broyden method

The updating scheme in Eq. (B.10) requires sufficient memory for storing \(d^2\) double type numeric values for the matrix entries, which may be a lot of information for large-scale problems.

A different approach is suggested below, where only a single matrix with \(d\times k_{\max }\) entries needs to be stored in the memory, \(k_{\max }\) being the maximum number of iterations used in the solution. This formulation is beneficial for large problems when a good initial guess exists.

First, we acknowledge that essentially what is required for updating the guess for the root is the step size, rather than the Broyden matrix itself. Multiplying Eq. (B.10) by \(-\mathbf{f }_k\), the following updating formula for the step is obtained, represented as a recursion relation:

$$\begin{aligned} \mathbf{s }_{n+1}=\frac{\mathbf{s }_n^{\top }\mathbf{s }_n\mathbf{c }_n}{\mathbf{s }_n^{\top }(\mathbf{s }_n-\mathbf{c }_n)} \end{aligned}$$
(C.1)

(where \(\mathbf{c }_n\triangleq -\tilde{\mathbf{B }}_{n-1}\mathbf{f }_n\), but this relation is not explicitly used). Furthermore, substituting \(k=n-1\) in Eq. (B.10) and multiplying it by \(-\mathbf{f }_{n}\) produce the updating formula for \(\mathbf{c }_n\):

$$\begin{aligned} \mathbf c _{n}=\mathbf{d }_n^{(n-2)}+\frac{\mathbf{c }_{n-1}\mathbf{s }_{n-1}^{\top }\mathbf{d }_n^{(n-2)}}{\mathbf{s }_{n-1}^{\top }(\mathbf{s }_{n-1}-\mathbf{c }_{n-1})} \end{aligned}$$
(C.2)

(where \(\mathbf{d }_n^{(n-2)}\triangleq -\tilde{\mathbf{B }}_{n-2}\mathbf{f }_n\), but, again, this relation is not explicitly used).

Finally, substituting \(k=n-j\) in Eq. (B.10) and multiplying it by \(-\mathbf{f }_{n}\) produce the updating formula for \(\mathbf{d }_n^{(n-2)}\) in the form of a set of recursion relations, as follows:

$$\begin{aligned} \mathbf{d }_n^{(n-j)}=\mathbf{d }_n^{(n-j-1)}+\frac{\mathbf{c }_{n-j}\mathbf{s }_{n-j}^{\top }\mathbf{d }_n^{(n-j-1)}}{\mathbf{s }_{n-j}^{\top }(\mathbf{s }_{n-j}-\mathbf{c }_{n-j})} \end{aligned}$$
(C.3)

(where \(\mathbf{d }_n^{(n-j)}\triangleq -\tilde{\mathbf{B }}_{n-j}\mathbf{f }_n\), and still, this relation is not explicitly used). Here j should start at 2 and increase up to \(j=k-1\) for \(n=k\).

The set of recursion relations given in Eqs. (C.1)–(C.3) should be solved recursively for each iteration solution k, for values of n starting from k and decreasing up to 1, 2 or 3, corresponding to Eqs. (C.1)–(C.3), respectively, using Eq. (64) and the following initial condition:

$$\begin{aligned} \mathbf{d }_m^{(1)}=\mathbf{f }_m, \forall m=3,\ldots ,k \end{aligned}$$
(C.4)

The (recursive) solution of the system in Eqs. (C.1)–(C.4) allows the calculation of the step \(\mathbf{s }_{k+1}\) for each iteration k, and the information it requires for this purpose is only the history of the values of the vector function the root of which is sought. In a matrix form, this information, which has to be kept in the memory during the iterative solution, can be encompassed in a single matrix whose columns are the consecutive values of the vector function the root of which is sought, constructed as shown in Eq. (63).

Thus, the memory requirement of the algorithm is approximately \(d\times k_{\max }\) double-precision numbers stored (overwritten) for each run (loading increment) of the solver.

1.1 Further modification: decreasing CPU by avoiding recursive scalar products

The recursive algorithm presented in Eqs. (C.1)–(C.4) is a low-memory method. However, the successive function calls it implements may be high in CPU, especially due to computation of the various scalar products appearing in the aforementioned equations, which require double loops of size d, the number of equations, an outer loop for the components of the vectors in Eqs. (C.1)–(C.4), and internal loops of the same size, for the computation of the scalar products. Normally, this might have been tolerable; however, the low-memory version uses recursion, which multiplies the number of function calls considerably, employing the internal loops in each call.

A natural remedy would be to avoid scalar product computations by directly updating the results of the scalar products in Eqs. (C.1)–(C.4), instead of only updating the vectors and calculating the products every time. To this end, we define the following new variables:

$$\begin{aligned} \alpha _n\triangleq \mathbf{s }_n^{\top }\mathbf{c }_n, \ \beta _n\triangleq \mathbf{s }_n^{\top }\mathbf{s }_n, \ \gamma _n^{(m)}\triangleq \mathbf{s }_m^{\top }\mathbf{d }_n^{(m-1)} \end{aligned}$$
(C.5)

Consequently, the system in Eqs. (C.1)–(C.4) is rewritten as shown in Eq. (61) and:

$$\begin{aligned}&\mathbf{c }_{n}=\mathbf{d }_n^{(n-2)}+\frac{\gamma _n^{(n-1)}}{\beta _{n-1}-\alpha _{n-1}}\mathbf{c }_{n-1} , \ n\ge 3 \end{aligned}$$
(C.6)
$$\begin{aligned}&\mathbf{d }_{n}^{(m)}=\mathbf{d }_n^{(m-1)}+\frac{\gamma _n^{(m)}}{\beta _{m}-\alpha _{m}}\mathbf{c }_{m} , \ n\ge 3, \ m\ge 2 \end{aligned}$$
(C.7)

Equation (61) is decoupled from the other two equations, and in itself is not required for the recursive sequence. It is therefore only needed as the update step for the next-iteration solution used in the end of the recursive function call. Thus, the equation is written in terms of the ‘current’ iteration step k, and not the general index n. The system of Eqs. (C.6)–(C.7) is relatively simple, as it allows updating the ‘current’ quantities requiring only the current values of the vectors and scalar themselves (first-order update). Therefore, this system can be written in a component-wise form, in a single ‘outer’ loop over the component index, with all the recursive function calls happening inside this large loop, separately for each component. This is significant economy of time (complexity). The initial conditions for the vector quantities in the system are still given by Eqs. (64) and (C.4).

What we need in order to implement the recursive scheme in Eqs. (C.6)–(C.7), is recursive updating relations for the three scalar quantities defined above, namely \(\alpha _n,\beta _n\) and \(\gamma _n^{(m)}\).

One can obtain such updating equations by taking six scalar products, corresponding to the three symmetric permutations of scalar products of the vector equations (61), (C.6) and (C.7). First, one acknowledges that in order to write the aforementioned six equation in purely scalar quantities, one has to introduce three additional definitions, complementing Eq. (C.5), as follows:

$$\begin{aligned} \lambda _n\triangleq \mathbf{c }_n^{\top }\mathbf{c }_n, \ \mu _n^{(m)}\triangleq \mathbf{c }_m^{\top }\mathbf{d }_n^{(m-1)} \end{aligned}$$
(C.8)

In addition to these one- and two-argument recursive functions, a single three-argument function should be defined:

$$\begin{aligned} \nu _{nl}^{(m)}\triangleq [\mathbf{d }_n^{(m-1)}]^{\top }\mathbf{d }_l^{(m-1)} \end{aligned}$$
(C.9)

Now we have six specially defined scalar quantities, and we can write six recursion equations for them—something we could not have done for the three first quantities alone (Eq. (61) itself should not be used in the recursive function calls, but a scalar equation derived from it should be used, and it is obtained by writing Eq. (61) with the index n, and taking its scalar product with itself). The six resulting explicit updating equations and initial conditions are given by Eqs. (68)–(74).

One notes that this formulation requires the storage of \(p^2\) numbers in memory for the sake of having initial conditions for the recursive relations, p being the maximum number of iterations used by the algorithm (switching to notation more compact than \(k_{\text {max}}\)). This means that the total required memory is for \(p N+p^2\) entries (N replacing d for the sake of more standard notation). As for CPU—in implementing the proposed algorithm, there should be an outer loop for the iteration number, in which \(p^2\) scalar products of N-dimensional vectors should be calculated in each iteration and added to existing arrays, then an inner loop on N, in which the vector functions presented above are called-for component-wise, such that the recursion only applies to scalars, and, of course, the ‘low-cost’ update calls for the six scalar recursive functions. Consequently, the overall number of computations may be approximately exponential (combinatorial) in p, but only linear in N, which may be efficient for large N and small enough loading increments allowing to use smaller values of p (say of the order of 10).

1.2 Iterative formulation for p-polynomial complexity

The equations presented in the previous subsection lead to combinatorial (that is approximately exponential) complexity in p. Although for the case of convergence within several iterations the algorithm described above may be acceptable, even for efficient loading-stepping of the mechanical problem, tens of iterations may be required, for which exponential complexity may already render the procedure intractable. The reason for the exponential complexity is in the nature of the recursive formulation. A logical remedy is to interpret the system given in Eqs. (C.6)–(C.7) and (68)–(73) as an iterative scheme, rather than a recursive one, and iterating the values only once, starting from the initial condition, instead of calling the functions multiple times.

To this end, the scalar equations (68)–(73) pose no problem. However, if the quantities \(\mathbf{c }_n\) and \(\mathbf{d }_n^{(m)}\) are treated not as functions but rather as iterated values, then they need to be stored in memory as two \(p\times N\) matrices—and then the twice as much memory economy is needed. The first step to overcome this problem is to solve system (C.6)–(C.7) analytically for \(\mathbf{d }_n^{(m)}\), using the third initial condition in Eq. (C.4), which is possible due to linearity. Once this is done, the two Eqs. (C.6)–(C.7) can be replaced by a single vector equation, as follows:

$$\begin{aligned} \mathbf{c }_{n}=\mathbf{f }_n+\sum _{m=2}^{n-1}\frac{\gamma _n^{(m)}}{\beta _{m}-\alpha _{m}}\mathbf{c }_{m} , \ n\ge 3 \end{aligned}$$
(C.10)

This system is still iterative. Although now only one quantity is iterated, namely \(\mathbf{c }_n\), it still requires the storage of a \(p\times N\) matrix in the memory, in addition to the already stored \(p\times N\) matrix \(\mathbf{F }^{(k)}\). Thus, the memory requirement here is \({\mathcal {O}}(2p N)\). In order to avoid the storage problem, one should avoid iterations. If only the last iteration is stored in the memory, the total memory requirement becomes more economic. To this end one only needs to obtain the analytical solution of the recursive relation in Eq. (C.10) for \(\mathbf{c }_n\). The solution is outlined in Eqs. (62) and (65)–(67).

Equation (C.10) cannot be iterated component-wise, since the outer loop of the solver is the stepping in k and the intermediate loop is on the vector dimension, i (and the inner loop is on the sub-iteration index \(m<k\)). Consequently, one has to store the values of \(\mathbf{c }_m\) for all sub-iteration index values, for all the vector components, which means storing a \(k\times N\) matrix, as large as \(p\times N\), in addition to \(\mathbf{F }^{(k)}\). In contrast to that, the explicit formula in Eq. (62) does not require the storage of an additional \(p\times N\) matrix beside \(\mathbf{F }^{(k)}\), but only the result of the application of a scalar product operator with a vector of size p on the already stored matrix \(\mathbf{F }^{(k)}\).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Perchikov, N., Aboudi, J. Micromechanical analysis of hyperelastic composites with localized damage using a new low-memory Broyden-step-based algorithm. Arch Appl Mech 90, 47–85 (2020). https://doi.org/10.1007/s00419-019-01598-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00419-019-01598-x

Keywords

Navigation