Page MenuHomec4science

µSpectreProject
ActivePublic

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.

[1] H. Moulinec and P. Suquet. A numerical method for computing the overall response of nonlinear composites with complex microstructure. //Computer Methods in Applied Mechanics and Engineering//, 157(1):69–94, 1998. doi: 10.1016/S0045-7825(97) 00218-1.
[2] J. Zeman, T. W. J. de Geus, J. Vondřejc, R. H. J. Peerlings, and M. G. D. Geers. A finite element perspective on non- linear FFT-based micromechanical simulations. //International Journal for Numerical Methods in Engineering//, 2017. doi: 10.1002/nme.5481.

Recent Activity

Mon, Jan 7

junge added a commit to T2090: Fully integrate StateFields into FieldCollection: rMUSPECTRE676022f5dfa6: fixed pull-back for MaterialHyperElastoPlastic1.
Mon, Jan 7, 16:48 · µSpectre

Sat, Dec 22

junge moved T2519: add material_linear_elastic_generic with eigenstrain from Doing to Done on the µSpectre board.
Sat, Dec 22, 10:37 · µSpectre

Fri, Dec 21

junge closed T2519: add material_linear_elastic_generic with eigenstrain as Resolved by committing rMUSPECTREee949b1469ba: ENH: added MaterialLinearElasticGeneric2.
Fri, Dec 21, 13:50 · µSpectre
junge added a commit to T2517: add python bindings to material_linear_elastic_generic: rMUSPECTREee949b1469ba: ENH: added MaterialLinearElasticGeneric2.
Fri, Dec 21, 13:50 · µSpectre

Thu, Dec 20

junge added a revision to T2517: add python bindings to material_linear_elastic_generic: Restricted Differential Revision.
Thu, Dec 20, 19:15 · µSpectre
junge added a revision to T2519: add material_linear_elastic_generic with eigenstrain: Restricted Differential Revision.
Thu, Dec 20, 19:15 · µSpectre
junge added a revision to T2519: add material_linear_elastic_generic with eigenstrain: Restricted Differential Revision.
Thu, Dec 20, 16:57 · µSpectre
junge added a revision to T2517: add python bindings to material_linear_elastic_generic: Restricted Differential Revision.
Thu, Dec 20, 16:57 · µSpectre
junge triaged T2519: add material_linear_elastic_generic with eigenstrain as High priority.
Thu, Dec 20, 15:23 · µSpectre
junge moved T2517: add python bindings to material_linear_elastic_generic from Doing to Done on the µSpectre board.
Thu, Dec 20, 15:22 · µSpectre
junge closed T2517: add python bindings to material_linear_elastic_generic as Resolved by committing rMUSPECTREd7e113f47457: ENH: Python Bindings for Generic Linear Elastic Material + doc.
Thu, Dec 20, 15:22 · µSpectre
junge added a revision to T2517: add python bindings to material_linear_elastic_generic: Restricted Differential Revision.
Thu, Dec 20, 15:12 · µSpectre
junge added a member for µSpectre: hu.
Thu, Dec 20, 15:12
junge triaged T2518: VTK output simplification as Normal priority.
Thu, Dec 20, 14:26 · µSpectre
junge triaged T2517: add python bindings to material_linear_elastic_generic as High priority.
Thu, Dec 20, 11:07 · µSpectre

Dec 12 2018

junge triaged T2507: Material evaluator as High priority.
Dec 12 2018, 16:31 · µSpectre

Dec 11 2018

RLeute closed T1885: gcc 5.4 abs is only evaluated for integers as Resolved.
Dec 11 2018, 14:12 · µSpectre
junge created T2504: add math notation page to documentation.
Dec 11 2018, 09:58 · µSpectre
junge created T2503: Make materials parameters explicit.
Dec 11 2018, 09:28 · µSpectre

Dec 10 2018

junge removed a subtask for T1843: µSpectre Release 0.9 β: T1887: Additional degrees of freedom due to damage etc.
Dec 10 2018, 15:45 · µSpectre
junge removed a parent task for T1887: Additional degrees of freedom due to damage etc: T1843: µSpectre Release 0.9 β.
Dec 10 2018, 15:45 · µSpectre
junge removed a subtask for T1843: µSpectre Release 0.9 β: T1943: Conditionally download and compile PFFT.
Dec 10 2018, 15:43 · µSpectre
junge removed a parent task for T1943: Conditionally download and compile PFFT: T1843: µSpectre Release 0.9 β.
Dec 10 2018, 15:43 · µSpectre

Dec 8 2018

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

pending approval of revision D224 by @RLeute

Dec 8 2018, 10:49 · µSpectre
junge moved T1926: Memcheck-discussion from Backlog to Done on the µSpectre board.
Dec 8 2018, 10:45 · µSpectre
junge closed T1926: Memcheck-discussion, a subtask of T1843: µSpectre Release 0.9 β, as Resolved.
Dec 8 2018, 10:44 · µSpectre
junge closed T1926: Memcheck-discussion as Resolved.

seems to be a non-issue

Dec 8 2018, 10:44 · µSpectre
junge raised the priority of T1934: Check up on cpplint.py and whether it is worth it from Normal to High.
Dec 8 2018, 10:43 · µSpectre
junge added a comment to T1934: Check up on cpplint.py and whether it is worth it.

Proposal in commit 520ee158d5dc

Dec 8 2018, 10:43 · µSpectre
junge added a comment to T2238: netcdf3 input reader.

functional, but not yet merged into master

Dec 8 2018, 10:41 · µSpectre

Dec 7 2018

junge added a revision to T2090: Fully integrate StateFields into FieldCollection: Restricted Differential Revision.
Dec 7 2018, 02:45 · µSpectre

Oct 14 2018

junge edited Description on µSpectre.
Oct 14 2018, 17:52

Sep 21 2018

junge closed T2239: Input format needs fixing, a subtask of T2237: µLib integration, as Resolved.
Sep 21 2018, 09:36 · µSpectre
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 21 2018, 09:36 · µSpectre

Sep 20 2018

junge moved T2238: netcdf3 input reader from Backlog to Doing on the µSpectre board.
Sep 20 2018, 11:27 · µSpectre
junge removed a parent task for T2239: Input format needs fixing: T2238: netcdf3 input reader.
Sep 20 2018, 11:26 · µSpectre
junge removed a subtask for T2238: netcdf3 input reader: T2239: Input format needs fixing.
Sep 20 2018, 11:26 · µSpectre
junge added a parent task for T2239: Input format needs fixing: T2237: µLib integration.
Sep 20 2018, 11:26 · µSpectre
junge added a subtask for T2237: µLib integration: T2239: Input format needs fixing.
Sep 20 2018, 11:26 · µSpectre
junge triaged T2239: Input format needs fixing as Low priority.
Sep 20 2018, 11:25 · µSpectre
junge triaged T2238: netcdf3 input reader as High priority.
Sep 20 2018, 11:22 · µSpectre
junge triaged T2237: µLib integration as Normal priority.
Sep 20 2018, 11:21 · µSpectre

Sep 14 2018

junge added a member for µSpectre: MartinDoskar.
Sep 14 2018, 09:51

Sep 5 2018

junge triaged T2229: protections from mpi missing as High priority.
Sep 5 2018, 10:24 · µSpectre
junge created T2228: update dependency doc.
Sep 5 2018, 10:05 · µSpectre
junge added a member for µSpectre: jan.zeman4.
Sep 5 2018, 09:50

Aug 7 2018

afalsafi triaged T2198: CGAL -frounding-math problem as High priority.
Aug 7 2018, 14:23 · µSpectre
afalsafi triaged T2197: Set_uniform_strain fails in Python as High priority.
Aug 7 2018, 13:44 · µSpectre
afalsafi created T2197: Set_uniform_strain fails in Python.
Aug 7 2018, 13:44 · µSpectre

Aug 1 2018

junge moved T2090: Fully integrate StateFields into FieldCollection from Doing to Done on the µSpectre board.
Aug 1 2018, 12:49 · µSpectre