Finite strain FFT-based non-linear solvers made simple
  Computational micromechanics and homogenization require the solution of the mechanical equilibrium of a periodic cell that comprises a (generally complex) microstructure. Techniques that apply the Fast Fourier Transform have attracted much attention as they outperform other methods in terms of speed and memory footprint. Moreover, the Fast Fourier Transform is a natural companion of pixel-based digital images which often serve as input. In its original form, one of the biggest challenges for the method is the treatment of (geometrically) non-linear problems, partially due to the need for a uniform linear reference problem. In a geometrically linear setting, the problem has recently been treated in a variational form resulting in an unconditionally stable scheme that combines Newton iterations with an iterative linear solver, and therefore exhibits robust and quadratic convergence behavior. Through this approach, well-known key ingredients were recovered in terms of discretization, numerical quadrature, consistent linearization of the material model, and the iterative solution of the resulting linear system. As a result, the extension to finite strains, using arbitrary constitutive models, is at hand. Because of the application of the Fast Fourier Transform, the implementation is substantially easier than that of other (Finite Element) methods. Both claims are demonstrated in this paper and substantiated with a simple code in Python of just 59 lines (without comments). The aim is to render the method transparent and accessible, whereby researchers that are new to this method should be able to implement it efficiently. The potential of this method is demonstrated using two examples, each with a different material model. 
T.W.J. de Geus, J. Vondrejc, J. Zeman, R.H.J. Peerlings, M.G.D. Geers
math.NA