Skip to main content

CRATE: Clustering-based Nonlinear Analysis of Materials

Project description

logo

What is CRATE?

Docs | Installation | GitHub | PyPI

Summary

CRATE (Clustering-based Nonlinear Analysis of Materials) is a Python project (package cratepy) developed in the context of computational mechanics to aid the design and development of new materials. Its main purpose is performing multi-scale nonlinear analyses of heterogeneous materials through a suitable coupling between first-order computational homogenization and clustering-based reduced-order modeling: given a representative volume element of the material microstructure and the corresponding material phase properties, CRATE computes the material's effective mechanical response when subject to a prescribed macro-scale loading path.

Statement of need

cratepy is essentially a numerical tool for any application that requires material multi-scale simulations. Given the intrinsic clustering-based reduced-order modeling approach (e.g., SCA, ASCA), CRATE is mostly useful in applications where the computational cost of standard simulation methods is prohibitive, namely to solve lower-scales in coupled hierarchical multi-scale simulations (e.g., B.P. Ferreira (2022)) and to generate large material response databases for data-driven frameworks based on machine learning (e.g., Bessa et al. (2017)). Clustering-based reduced-order models achieve a striking balance between accuracy and computational cost by first performing a clustering-based domain decomposition of the material model and then solving the equilibrium problem formulated over the resulting reduced model.

In the particular case of a research environment, cratepy is designed to easily accommodate further developments, either by improving the already implemented methods or by including new numerical models and techniques. It also provides all the fundamental means to perform comparisons with alternative methods, both in terms of accuracy and computational cost. In a teaching environment, cratepy is a readily available tool for demonstrative purposes and/or academic work proposals in solid mechanics and material-related courses.

Authorship & Citation

CRATE was originally developed by Bernardo P. Ferreira1 in the context of his PhD Thesis2.

If you use CRATE in a scientific publication, it is appreciated that you cite this PhD Thesis:

@phdthesis{ferreira:2022a,
  title = {Towards Data-driven Multi-scale Optimization of Thermoplastic Blends: Microstructural Generation, Constitutive Development and Clustering-based Reduced-Order Modeling},
  author = {Ferreira, B.P.},
  year = {2022},
  langid = {english},
  school = {University of Porto},
  url={https://hdl.handle.net/10216/146900}
}

1 Profile: LinkedIN, ORCID, ResearchGate

2 Ferreira, B.P. (2022). Towards Data-driven Multi-scale Optimization of Thermoplastic Blends: Microstructural Generation, Constitutive Development and Clustering-based Reduced-Order Modeling. PhD Thesis, University of Porto (see here)


Getting started

You can find everything you need to know in CRATE documentation!

logo

Community Support

If you find any issues, bugs or problems with CRATE, please use the GitHub issue tracker to report them. Provide a clear description of the problem, as well as a complete report on the underlying details, so that it can be easily reproduced and (hopefully) fixed!

You are also welcome to post there any questions, comments or suggestions for improvement in the GitHub discussions space!

Please refer to CRATE's Code of Conduct.

Note:
Bear in mind that CRATE is a program developed in an academic environment and that I'm currently the only developer as a side project. This means that I'll do my best to address all the issues, questions and suggestions, but do expect a reasonable time frame! ~ Bernardo P. Ferreira

Credits

  • Bernardo P. Ferreira is deeply thankful to Francisco Pires and Miguel Bessa for supervising the PhD Thesis that motivated the development of CRATE.

  • Bernardo P. Ferreira acknowledges the pioneering development of clustering-based reduced-order models by Zeliang Liu, namely by proposing the Self-Consistent Clustering Analysis (SCA), that established the conceptual framework and foundations for the development of CRATE.

License

Copyright 2020, Bernardo Ferreira

All rights reserved.

CRATE is a free and open-source software published under a BSD 3-Clause License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cratepy-1.0.3.tar.gz (195.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cratepy-1.0.3-py3-none-any.whl (222.0 kB view details)

Uploaded Python 3

File details

Details for the file cratepy-1.0.3.tar.gz.

File metadata

  • Download URL: cratepy-1.0.3.tar.gz
  • Upload date:
  • Size: 195.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for cratepy-1.0.3.tar.gz
Algorithm Hash digest
SHA256 4d3403e8323a42bc70f4db03c055fb00aee16d9623b7a91dd3c4abee0cf5b889
MD5 64fa996b9f5ba15835176259e8b03b94
BLAKE2b-256 63cbb2f30045d5b7eefffae1fcdcd38cbd92d1b182f6e995b81ac96a32e39af6

See more details on using hashes here.

File details

Details for the file cratepy-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: cratepy-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 222.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for cratepy-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 109f5e7969fdac618c9214d20f00741ee258b5c2de52fb751dbddffb82dde874
MD5 9bc87be13d6d7d177dc05648bf9ad3fb
BLAKE2b-256 6ba623df40ca7b56a05ef4b951cb42e0bfe3c4b17455e72c2b0fd9b82a41c422

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page