# Details

Description

Project µSpectre aims at providing an open-source platform for efficient FFT-based continuum mesoscale modelling. Its development is funded by the Swiss National Science Foundation within an Ambizione Project and the European Research Council within ERC-StG-757343. Please find the documentation on Read the Docs.

Computational continuum mesoscale modelling (or computational homogenisation) involves computing the overall response of a periodic unit cell of material, a so-called representative volume element (RVE), to a given average (i.e., macroscale) strain. Typically, this is done using the finite-element method, even though it is neither able to leverage its main strength, the trivial handling of complex geometries, nor otherwise particularly well suited for periodic problems. An alternative method for modelling periodic RVE, developed by Moulinec and Suquet [1], is based on the fast Fourier transform (FFT). This method has evolved substantially over the last two decades, with particularly important and currently underused improvements in the last two years, see Zeman et al [2].

This new method for the solution of the core problem of computational homogenisation is significantly superior to the FEM in terms of computational cost and memory footprint for most applications, but has not been exploited to its full potential. One major obstacle to the wide adoption of the method is the lack of a robust, validated, open-source code. Hence, researchers choose the well-known and tested FEM that has numerous commercial, open-source or legacy in-house FEM codes.

The goal of this project is to develop µSpectre, an open-source platform for efficient FFT-based continuum mesoscale modelling, which will overcome this obstacle. The project is designed to
i)
propose a de facto standard implementation for the spectral RVE method that subsequent implementations can be compared to, in order to concentrate the development effort of all interested parties in the field,
ii)
make µSpectre widely accessible for users by providing language bindings for virtually all relevant popular computing platforms and comprehensive user's manuals in order to help widespread adoption, and, finally
iv)
make µSpectre eminently modifiable for developers by developing it in the open, with a clean architecture and extensive developer's documentation in order to maximise outside contributions.

Furthermore, this project places great importance on truly reproducible and verifiable science with a credible open data strategy in the firm belief that these qualifiers help to reach and guarantee a high level of scientific quality, difficult to reach otherwise, and to attract outside collaborations and contributions that help boost the scientific output beyond what can be achieved by a single team.

# Jan 25 2019

junge added a revision to T2542: Tiny bug in Cmakelist of language_bindings/python: Restricted Differential Revision.
junge changed the visibility for T2542: Tiny bug in Cmakelist of language_bindings/python.
junge moved T2542: Tiny bug in Cmakelist of language_bindings/python from Backlog to Doing on the µSpectre board.

# Jan 23 2019

afalsafi triaged T2542: Tiny bug in Cmakelist of language_bindings/python as High priority.

# Jan 21 2019

junge closed T2507: Material evaluator as Resolved by committing rMUSPECTRE3bc6fa3694d8: ENH: Added Material Evaluator.

# Jan 19 2019

junge triaged T2536: unified material interface with dynamic parameter maps as High priority.
junge closed T1934: Check up on cpplint.py and whether it is worth it as Resolved.
junge closed T1934: Check up on cpplint.py and whether it is worth it, a subtask of T1748: Write Documentation, as Resolved.
junge closed T1917: Write python bindings for MaterialHyperElastoPlastic1 as Resolved.
junge added a revision to T2507: Material evaluator: Restricted Differential Revision.

# Dec 22 2018

junge moved T2519: add material_linear_elastic_generic with eigenstrain from Doing to Done on the µSpectre board.

# Dec 20 2018

junge added a revision to T2517: add python bindings to material_linear_elastic_generic: Restricted Differential Revision.
junge added a revision to T2519: add material_linear_elastic_generic with eigenstrain: Restricted Differential Revision.
junge added a revision to T2519: add material_linear_elastic_generic with eigenstrain: Restricted Differential Revision.
junge added a revision to T2517: add python bindings to material_linear_elastic_generic: Restricted Differential Revision.
junge triaged T2519: add material_linear_elastic_generic with eigenstrain as High priority.
junge moved T2517: add python bindings to material_linear_elastic_generic from Doing to Done on the µSpectre board.
junge added a revision to T2517: add python bindings to material_linear_elastic_generic: Restricted Differential Revision.
junge added a member for µSpectre: hu.
junge triaged T2518: VTK output simplification as Normal priority.
junge triaged T2517: add python bindings to material_linear_elastic_generic as High priority.

# Dec 12 2018

junge triaged T2507: Material evaluator as High priority.

# Dec 11 2018

RLeute closed T1885: gcc 5.4 abs is only evaluated for integers as Resolved.

# Dec 10 2018

junge removed a subtask for T1843: µSpectre Release 0.9 β: T1887: Additional degrees of freedom due to damage etc.
junge removed a parent task for T1887: Additional degrees of freedom due to damage etc: T1843: µSpectre Release 0.9 β.
junge removed a parent task for T1943: Conditionally download and compile PFFT: T1843: µSpectre Release 0.9 β.

# Dec 8 2018

junge updated subscribers of T1917: Write python bindings for MaterialHyperElastoPlastic1.

pending approval of revision D224 by @RLeute

junge moved T1926: Memcheck-discussion from Backlog to Done on the µSpectre board.
junge closed T1926: Memcheck-discussion, a subtask of T1843: µSpectre Release 0.9 β, as Resolved.
junge closed T1926: Memcheck-discussion as Resolved.

seems to be a non-issue

junge raised the priority of T1934: Check up on cpplint.py and whether it is worth it from Normal to High.
junge added a comment to T1934: Check up on cpplint.py and whether it is worth it.

Proposal in commit 520ee158d5dc

functional, but not yet merged into master

# Dec 7 2018

junge added a revision to T2090: Fully integrate StateFields into FieldCollection: Restricted Differential Revision.

# Oct 14 2018

junge edited Description on µSpectre.

# Sep 21 2018

junge closed T2239: Input format needs fixing, a subtask of T2237: µLib integration, as Resolved.
junge closed T2239: Input format needs fixing as Resolved.

Box sizes will be defined in the netcdf input
Convergence tolerances become command line options
even numbered grids are filtered by muLib

# Sep 20 2018

junge moved T2238: netcdf3 input reader from Backlog to Doing on the µSpectre board.
junge removed a parent task for T2239: Input format needs fixing: T2238: netcdf3 input reader.
junge removed a subtask for T2238: netcdf3 input reader: T2239: Input format needs fixing.