hypercan
Implementation of 'HyperCAN: Hypernetwork-driven deep parameterized constitutive models for metamaterials'
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 8 DOI reference(s) in README -
✓Academic publication links
Links to: scholar.google, sciencedirect.com, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.1%) to scientific vocabulary
Repository
Implementation of 'HyperCAN: Hypernetwork-driven deep parameterized constitutive models for metamaterials'
Basic Info
- Host: GitHub
- Owner: li-zhengz
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://doi.org/10.1016/j.eml.2024.102243
- Size: 4.72 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
HyperCAN: Hypernetwork-driven deep parameterized constitutive models for metamaterials
$~$

Introduction
We introduce HyperCAN, a machine learning framework that utilizes hypernetworks to construct adaptable constitutive artificial neural networks for a wide range of beam-based metamaterials under finite deformations. For a detailed explortion of our approach and its applications, please refer to our publication HyperCAN: Hypernetwork-driven deep parameterized constitutive models for metamaterials.
Installation
Dependencies
The framework was developed and tested on Python 3.10.4 using CUDA 12.0. You can install the required dependencies by running:
bash
pip install -r requirements.txt
Setup
To conduct similar studies as those presented in the publication, start by cloning this repository via
git clone https://github.com/li-zhengz/HyperCAN.git
Next, download the data and model checkpoints provided in the ETHZ Research Collection. Unzip the dataset in the dataset folder and the pre-trained model in the model_checkpoint.zip, as shown below. You can also build your own dataset for the given FEM simulationd data by running python loadData.py.
.
├── data
│ ├── dataset
│ │ ├── 6000_train_dataset.pt
│ │ ├── 6000_test_truss_dataset.pt
│ │ ├── 6000_test_load_dataset.pt
│ │ └── 6000_test_load_truss_dataset.pt
│ ├── FEM_data (optional)
│ │ ├── train
│ │ │ └── [...]
│ │ ├── test_truss
│ │ │ └── [...]
│ │ ├── test_load
│ │ │ └── [...]
│ │ └── test_load_truss
│ │ └── [...]
├── model_checkpoint
│ ├── icnn_checkpoint.pth
│ └── graph_checkpoint.pth
Training
Once you have the tranining data ready, use the following command to start the training process. The training parameters are specified in the config.yaml file.
python
python main.py
Evaluation
To evaluate the model, run validation.py to obtain the coefficient of determination ($R^2$ score) and the normalized root mean square error (NRMSE) metrics for the trained model across different datasets.
Citation
If this code is useful for your research, please cite our publication.
bibtex
@article{ZHENG2024,
title = {HyperCAN: Hypernetwork-driven deep parameterized constitutive models for metamaterials},
journal = {Extreme Mechanics Letters},
pages = {102243},
year = {2024},
issn = {2352-4316},
url = {https://www.sciencedirect.com/science/article/pii/S2352431624001238},
author = {Li Zheng and Dennis M. Kochmann and Siddhant Kumar},
}
Author
This code is developed and maintained by Li Zheng.
For further information or inquiries, feel free to contact li.zheng@mavt.ethz.ch.
Owner
- Login: li-zhengz
- Kind: user
- Repositories: 1
- Profile: https://github.com/li-zhengz
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If this code is useful for your research, please cite it as below."
authors:
- family-names: Zheng
given-names: Li
orcid: https://orcid.org/1234-5678-9101-1121
title: "HyperCAN"
version: 1.0.0
doi: 10.5281/zenodo.13947082
url: "https://github.com/li-zhengz/HyperCAN"
date-released: 2024-10-17
GitHub Events
Total
- Release event: 2
- Watch event: 2
- Push event: 2
- Fork event: 1
- Create event: 3
Last Year
- Release event: 2
- Watch event: 2
- Push event: 2
- Fork event: 1
- Create event: 3
Dependencies
- PyYAML ==6.0
- matplotlib ==3.8.0
- numpy ==1.24.4
- pandas ==2.1.1
- scipy ==1.11.3
- torch ==2.0.1