Organisation of the Code¶
µSpectre’s code base is split in three components which might be separated into different projects in the future, and this logical separation is already apparent in the directory structure. The three components are 1. µGrid 2. µFFT 3. µSpectre proper
At the lowest level, the header-only library µGrid, contains a set of tools to define and interact with mathematical fields discretised on a regular spatial grid as used by the FFT. It is discussed in more detail in its own section.
On top of µGrid the library µFFT provides an uniform interface for multiple FFT implementations.
And finally µSpectre itself makes use of the two lower-level libraries and defines all the abstractions and classes to define material behaviours and to solve mechanics problems.