Skip to main content

logo

What is CRATE?

Docs | Installation | GitHub | PyPI

DOI

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.

Consider leaving a star if you think CRATE is useful for the research community!

Authorship & Citation

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

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)

If you use CRATE in your research or in a scientific publication, it is appreciated that you cite the two papers below.

Journal of Open Source Software (paper):

@article{Ferreira2023,
  title = {CRATE: A Python package to perform fast material simulations},
  author = {Bernardo P. Ferreira and F. M. Andrade Pires and Miguel A. Bessa}
  doi = {10.21105/joss.05594},
  url = {https://doi.org/10.21105/joss.05594},
  year = {2023},
  publisher = {The Open Journal},
  volume = {8},
  number = {87},
  pages = {5594},
  journal = {Journal of Open Source Software}
}

Computer Methods in Applied Mechanics and Engineering (paper):

@article{Ferreira2022,
  title = {Adaptivity for clustering-based reduced-order modeling of localized history-dependent phenomena},
  author = {Ferreira, B.P., and Andrade Pires, F.M., and Bessa, M.A.},
  doi = {10.1016/j.cma.2022.114726},
  url = {https://www.sciencedirect.com/science/article/pii/S0045782522000895},
  year = {2022},
  volume = {393},
  pages = {114726},
  issn = {0045-7825},
  journal = {Computer Methods in Applied Mechanics and Engineering},
}

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.

  • Bernardo P. Ferreira is thankful to Rui Coelho for his essential contribution to developing a self-consistent scheme under finite strains and a corresponding set of comprehensive benchmarks. If you're interested in chess, you might enjoy exploring Rui's chess engine called Pawn!

License

Copyright 2020, Bernardo Ferreira

All rights reserved.

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

Release files for cratepy 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cratepy 1.0.6
File Size Uploaded
cratepy-1.0.6.tar.gz 197.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cratepy 1.0.6
File Interpreter ABI Platform
cratepy-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 421.3 kB

Release files / cratepy-1.0.6.tar.gz

Download URL cratepy-1.0.6.tar.gz
Size 197.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8d19a14cb7fca9967eed3664640e9bc3e2d945cd013fdaf167879ba9cd7db3a1
BLAKE2b-256 checksum
How to use checksums
9773f64d4dbca28d4415874991837f44a51bc166f21bd38832bb6ffcb72ebc5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.18

Release files / cratepy-1.0.6-py3-none-any.whl

Download URL cratepy-1.0.6-py3-none-any.whl
Size 223.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f59bea831fdbc75877b0cb1064bba6e14f9290af45c944eea5767a3f7bb140f8
BLAKE2b-256 checksum
How to use checksums
9e9abeec5b37f8319d65489cc6e69654b91f663ece6bf006ec55937f276e26af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.18

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page