Git Product home page Git Product logo

goosefft's Introduction

DOI

Disclaimer

This repository is distributed under an MIT license. In layman's term, you are free to do what you want with it. We just kindly request you to cite our papers that form the basis for this repository, and encourage you to be equally open with your code.

(c) Tom de Geus ([email protected]), Jaroslav Vondřejc, 2016

Contents

Introduction

This repository is primarily meant for those researchers who want to dive into the FFT-based micro-mechanical solver. It contains several small, single file, Python scripts which should lower the learning curve (see Ref. [1], which was written with this particular aim). These examples are formulated both in small strain (with linear and non-linear elastic, elasto-plastic, elasto-visco-plastic constitutive models; accompanying [2]), and finite strain (with hyper-elastic and elasto-plastic constitutive models; accompanying [1]). The examples only depend on standard Python and its scientific libraries NumPy and SciPy, which are freely available for all operating systems and are widely used. No custom software or libraries are used, i.e. there are no hidden layers of complexity.

Since different approaches exists for this type of numerical method, and since there are many styles and programming languages, anyone is invited to contribute by uploading similar small, preferably single file, examples for different materials, in different programming languages, or featuring different approaches.

Examples

The examples are divided in three categories:

  • Basic methodology. These examples focus on accessibility while retaining some computational efficiency. Great to get started.

  • Different materials models. These examples focus on different constitutive relations (which are completely uncoupled from the FFT-solver). At the same time, they are implemented more general and more efficiently than the examples that present the basic methodology.

  • Applications. These examples show just how powerful the FFT-solver can be, even with the very simple Python code. Also, they introduce the concept of 2-D plane strain.

Basic methodology

Different materials models

Applications

GPU support

References

[1]: T.W.J. de Geus, J. Vondřejc, J. Zeman, R.H.J. Peerlings, M.G.D. Geers. Finite strain FFT-based non-linear solvers made simple. Computer Methods in Applied Mechanics and Engineering, 2017, 318:412–430. doi: 10.1016/j.cma.2016.12.032, arXiv: 1603.08893

[2]: J. Zeman, T.W.J. de Geus, J. Vondřejc, R.H.J. Peerlings, M.G.D. Geers. A finite element perspective on nonlinear FFT-based micromechanical simulations. International Journal for Numerical Methods in Engineering, 2017, 111(10):903–926. doi: 10.1002/nme.5481, arXiv: 1601.05970

[3]: A. Henkes, I. Caylak, R. Mahnken. "A deep learning driven uncertain full‐field homogenization method." PAMM 20.1 (2021): e202000180. doi: 10.1002/pamm.202000180

goosefft's People

Contributors

ahenkes1 avatar arjunramaswami avatar jaspervolmer avatar tdegeus avatar vondrejc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

goosefft's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.